#include <iostream>
using namespace std;
int count_one(int n)
{
if(n<1)
return 0;
int round = n;
int base = 1;
int count = 0;
while(round>0)
{
int weight = round%10;
round/=10;
//count+=round;
if(weight==1)
count+=round*base+(n%10)+1;
else if(weight>1)
count+=round*base+base;
else if(weight==0)
count+=round*base;
base*=10;
}
return count;
}
/*
若weight为0,则1出现次数为round*base
若weight为1,则1出现次数为round*base+former+1
若weight大于1,则1出现次数为rount*base+base
*/
int main()
{
int n;
while(cin>>n)
{
cout<<count_one(n)<<endl;
}
return 0;
}
相关文章
- 剑指Offer面试题10(Java版):二进制中的1的个数
- 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。
- 题目: 有 n个人围成一圈,顺序排号。从第一个人开始报数(从 1到 3报数),凡报到 3的 人退出圈子,问最后留下的是原来第几号的那位。(模拟)
- 有n 个人围成一圈,顺序排号。从第一个人开始报数(从1 到3 报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的哪位。
- 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
- 编写程序,输入10个整数存入数组中,统计其中正数、负数和零的个数,并在屏幕上输出。例:输入:1 2 3 4 5 6 0 -1 -2 0
- 随机生成10个1~100之间的随机数(包括1和100),并将随机出来的10个数中是偶数的数字相加
- 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和, 然后重复这个过程直 到这个数变为 1,也可能是无限循环但始终变不到 1
- python输入一个数字n、计算1到n的和_python用户输入一个整数N,计算并输出1到N相加的和,请问这个程序错在哪里了?...