试题编号: 201912-1
试题名称: 报数
时间限制: 1.0s
内存限制: 512.0MB
由于含有7那部分,写错了,最后这道代码题只得了50分。。。
经过改正后,满分了。
感觉自己思考问题很不全面。。。。
#include<iostream>
using namespace std;
bool test(int k){
if(k%7 == 0){//7的倍数
return 1;
}
**while(k){//含有7
if(k%10 == 7){
return 1;
}
k /= 10;
}**
}
int main(){
int n;
int a[4];//记录本身的数
int b[4];//记录跳过的次数
cin >> n;
for(int i = 0; i < 4; i++){
a[i] = 0;
b[i] = 0;
}
int t = 0;//记录循环次数
int k = 0;//累加的数字
while(t <= n){
for(int i = 0; i < 4; i++){
k++;
int flag = test(k);
if(flag == 1){
b[i] += 1;
continue;
}else{
t++;
a[i] = k;
}
if(t == n){
t++;
break;
}
}
}
for(int i = 0; i < 4; i++){
cout << b[i] << endl;
}
return 0;
}