题目:
某天,诺诺看到三七二十一(3721)数,觉得很神奇,这种数除以3余2,而除以7则余1。例如8是一个3721数,因为8除以3余2,8除以7余1。现在给出两个整数a、b,求区间[a,b]中的所有3721数,若区间内不存在3721数则输出none
。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入两个整数a,b(1≤a<b<2000)。
输出格式:
对于每组测试,在一行上输出区间[a,b]中所有的3721数,每两个数据之间留一个空格。如果给定区间不存3721数,则输出none
。
输入样例:
2
1 7
1 100
输出样例:
none
8 29 50 71 92
来源:
[1] 黄龙军, 等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN:9787302564744
[2] 黄龙军.程序设计竞赛入门(Python版),北京:清华大学出版社,2021.4. ISBN:9787302571230
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
题解:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b,cnt=0;
cin >> n;
for(int i=0;i<n;i++)
{
cin >> a >> b;
for(int j =a;j <=b;j++)
{
if(j%3==2 && j%7==1)
{
if(cnt==0) cout<<j;//如果是第一个,前面不加空格
else cout<<" "<<j;//在数字之间加空格,这些是为了和要求的格式相符
cnt++;
}
}
if(cnt!=0 && i!=(n-1)) cout << endl;//这一组有符合要求的数字并且不是最后一组,则换行
if(cnt == 0 ) cout <<"none"<<endl;//这一组没有符合要求的数字,输出none并换行
cnt = 0;//计数器归零
}
return 0;
}