A - 我想找一个女朋友(每日一题) HRBUST - 1978

 

孤独的1注定了单身,但是1虽然不能找到自己的另外一半却可以找到自己的小伙伴。     现在总共有n个数字聚会,问1可以找到多少个小伙伴?Input    本题有多组测试数据,测试次数不超过100000。     对于每组测试,输入一个正整数n (1 ≤n ≤ 100000)。Output    对于每组数据输出答案,占一行。Sample Input9 13Sample Output

1 6

Hint对于第二组数据,1,2,3,4,5,6,7,8,9,10,11,12,13这些数字中共有1,10,11,12,13共6个1。

这道题我当时都懵逼了,看不懂题。其实现在想来很简单:可以看Hint:1到13出现了六次1;这道题就是看你输入的数里面1出现的次数。那么当然要用到cnt;下面我将开始我的表演:

#include<stdio.h>
int main(void)
{
  int n,i,a,b;
  while(scanf("%d",&n)!=EOF)
  {
    int cnt=1;
    for(i=1;i<=n;i++){
       b = i;
      while(b!=0)
      {
        a=b%10;
        if(a==1)
           cnt++;
            b=b/10;

      }
    }
     cnt=cnt-1;//我当时这一步没有想到,输入样例不对,因为cnt++所以每次值都要大1,必须最后一步对cnt++-1
     printf("%d\n",cnt);
  }
  return 0;
}

补充一点,b等于231时候,余数是1,如果b不能除10,就成为死循环了!

我也是初学者,大家一起加油!

 

猜你喜欢

转载自blog.csdn.net/cjh1459463496/article/details/79823469