求助站外题(违规紫衫)
  • 板块灌水区
  • 楼主Davidben
  • 当前回复7
  • 已保存回复7
  • 发布时间2021/9/2 20:29
  • 上次更新2023/11/4 08:07:29
查看原帖
求助站外题(违规紫衫)
484468
Davidben楼主2021/9/2 20:29

我是dalao小菜鸡过来寻求dalao的帮助


题目: 题目描述 小名看电视学到一个数数的游戏,几个人在一起数数,遇到数字中有7,或者是7的倍数的就不用讲出来,而是站起来!请编程把所有应该站起来的数显示出来,数据间有空格隔开,每行最多输出10个数!如果一个数都没有就输出‘NO’。

输入 一个正整数 n(1 <= n <= 32767)

输出 输出有7或者能被7整除的数,数据间空格隔开,每行最多10个!

样例输入
100
样例输出
7 14 17 21 27 28 35 37 42 47 
49 56 57 63 67 70 71 72 73 74 
75 76 77 78 79 84 87 91 97 98

我写的沙雕睿智答案:

#include<iostream>
using namespace std;
const int qwq = 1e6+10;
int a[qwq];
int s[qwq],cnt,num = 2;
void zhao(){
	s[1] = 7;
	for(int i = 10;i <= 99;i++){
		if(i % 10 == 7 || i/10%10 ==7 ){
			s[num] = i;
			num++;
			cnt++;
		}
		if(i % 7 == 0){
			s[num] = i;
			num++;
			cnt++;
		}
	}
	for(int i = 100;i <= 999;i++){
		if(i % 10 == 7 || i/10%10 == 7 || i/100%10 == 7){
			s[num] = i;
			num++;
			cnt++;
		}
		if(i % 7 == 0){
			s[num] = i;
			num++;
			cnt++;
		}
	}
	for(int i = 1000;i <= 9999;i++){
		if(i % 10 == 7 || i/10%10 == 7 || i/100%10 == 7 || i/1000%10 == 7){
			s[num] = i;
			num++;
			cnt++;
		}
		if(i % 7 == 0){
			s[num] = i;
			num++;
			cnt++;
		}
	}
	for(int i = 10000;i <= 40000;i++){
		if(i % 10 == 7 || i/10%10 == 7 || i/100%10 == 7 ||i/1000%10 == 7 ||i/10000%10 == 7){
			s[num] = i;
			num++;
			cnt++;
		}
		if(i % 7 == 0){
			s[num] = i;
			num++;
			cnt++;
		}
	}
}
int main(){
	int n;
	cin>>n;
	zhao();
	int y = 0;
	for(int  i = 1;i <= n;i++){
		if(s[i] > n){
			return 0;
		}
		if(s[i] == s[i+1]){
			continue;
		}
		cout<<s[i]<<" ";
		y++;
		if(y % 10 == 0){
			cout<<endl;
		}
	}
	return 0;
}

为什么最后80分,没有AC,请注意不是因为时间超限和空间溢出.是因为答案错误.

2021/9/2 20:29
加载中...