201912-1 报数
试题编号: 201912-1
试题名称: 报数
时间限制: 1.0s
内存限制: 512.0MB
问题描述:
思路:
判断7的倍数没啥难的,判断是否含7,也就是看每一位是否有7,具体就是先看当前数对10求余是否是7,如果不是,将当前数除以10,继续对10求余,如果最后数字不大于0,说明不含7;如果过程中有余数为7,即该数含7.
AC代码:
#include<bits/stdc++.h>
using namespace std;
int panduan(int x){
int temp = 0;
if(x % 7 == 0){
return 1;
}
else{
while(x>0){
temp = x%10;
if(temp == 7)
return 1;
x = x/10;
}
return 0;
}
}
int main(){
int n;
cin >> n;
int sum = 0; //报出的数的总数
int cnt1 = 0,cnt2 = 0,cnt3 = 0,cnt4 = 0; //甲乙丙丁四人各自跳过的次数
int i;
int flag = 1; //判断轮到谁报数
for(i = 1;sum!=n;i++){ //这里for循环的结束条件一定要是sum!=n,而不能是sum<=n.
if(panduan(i)){
if(flag == 1){
cnt1++;
}
else if(flag == 2){
cnt2++;
}
else if(flag == 3){
cnt3++;
}
else if(flag == 4){
cnt4++;
}
if(flag == 4){
flag = 1;
}else{
flag++;
}
}
else{
if(flag == 4){
flag = 1;
}
else{
flag++;
}
sum++;
}
}
cout << cnt1 << endl;
cout << cnt2 << endl;
cout << cnt3 << endl;
cout << cnt4 << endl;
}