题目描述
写程序无聊,玩个游戏,从1开始喊数,数到含7或者是7的倍数的要拍键盘!
那么问题来了,请你:
输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)
输入
一个整数N。(N不大于30000)
输出
统计出不大于N的与7有关的数字的个数。如20以内与7有关的数为7、14、17共3个。
样例输入
20
样例输出
3
这题主要是判断是否能被7整除或者数中含有7:
#include <stdio.h>
#include <stdlib.h>
int panduan(int n)
{
int wei,temp=n,ind=0;
int a[5]={0,0,0,0,0};
while(temp!=0) //分离n的个位,十位,百位........
{
wei=temp%10;
a[ind]=wei;
temp=temp/10;
ind++;
}
for(int i=0;i<5;i++)
{
if(a[i]==7||n%7==0) //如果n能被7整除或者n的位数有7
{
return 1;
break; //break避免重复判断
}
}
return 0;
}
int main()
{
int n,index=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
if(panduan(i)!=0) //判断i满不满足题意
{
index++; //满足就加一
}
}
printf("%d\n",index);
return 0;
}