试题编号:201912-1
试题题目:报数
思路:
常规题,注意报数的范围能取到四位数就行了,其他没什么坑。
代码:
#include <iostream>
using namespace std;
bool with_7(int n)
{
int a0,a1,a2,a3; //分别表示n的个位,十位,百位
if(n%7 == 0) return true;
a3 = n/1000;
a2 = (n-a3*1000)/100;
a1 = (n-a3*1000-a2*100)/10;
a0 = n-a3*1000-a2*100-a1*10;
if(a0==7 || a1==7 || a2==7 || a3==7)
return true;
return false;
}
int main()
{
int n,sum;
int i,j,temp,time_;
int sum_1=0,sum_2=0,sum_3=0,sum_4=0;
cin>>n;
sum = 0,i = 0,j = 0,time_= 0,temp = 0;
while(sum!=n)
{
temp = i*4+j+1;
if(with_7(temp) )
{
if(j==0) sum_1++;
if(j==1) sum_2++;
if(j==2) sum_3++;
if(j==3) sum_4++;
}
if(!with_7(temp))
sum++;
time_++;
if(time_!=0 && time_%4==0)
{
i++;
j=0;
continue;
}
j++;
}
cout<<sum_1<<endl;
cout<<sum_2<<endl;
cout<<sum_3<<endl;
cout<<sum_4<<endl;
return 0;
}