|
10鱼币
输入一个数N,输出不大于N的与七 有关的个数,如七的倍数,包含七数字的数
如 20 里有三个数,7,14,17.
- #include <stdio.h>
- int main()
- {
- int i=0,n,j;
- scanf("%d",&n);
- for(j=7;j<=n;j++)
- {
- if(j/10==7 || j%10 == 7 || j%7 ==0)
- i++;
-
- }
- printf("%d\n",i);
- return 0;
- }
复制代码
我发现我的程序是有点问题的,并没有把所有的数都包含进去。如 170 这个数就不行。
|
最佳答案
查看完整内容
这个意思是,如果这个数的个位是7,就让i加1,这里的*p就是i。
void seven(int *p, int j)//判断一个数中是否有某一位是数字7
{
if (j % 10 == 7)//如果最后一位数字是7
(*p)++;//i加1
else if (j / 10 != 0)//如果最后一位数字不是7,就去掉最后一位数字,形成这个新的数,进入迭代计算
seven(p, j / 10);
}
这个函数执行的效果就是,从这个数的最后一位开始遍历,遇到是7的位,就让i加1,并且函数执行结束;如果 ...
|