问题描述
输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
输入格式
一个正整数n
输出格式
一个整数,表示1出现的资料
样例输入
15
样例输出
8
数据规模和约定
n不超过30000
思路:
比较简单。定义一个方法计算每个数中1的个数,然后加起来就好了。
AC代码:
#include <iostream>
using namespace std;
int Num(int n){
int count=0;
while(n>0){
if(n%10==1)
count++;
n/=10;
}
return count;
}
int main(){
int i,n,cnt=0;
cin>>n;
for(i=0;i<=n;i++){
cnt+=Num(i);
}
cout<<cnt;
return 0;
}