题目描述:
为提升商业消费,提振消费信心,某商场正在举行“战疫情促消费”的抽奖活动。每一位到场的顾客都有一个编号,抽奖活动是这样的,首先自动抽奖机会随机的抽出两个数字m和n,其中m是小于n的,然后在[m,n]这个区间内找出能够被2、3、5除后均余1的编号,那么找出的前10位编号就是获奖的编号。
请你编写一个程序,帮忙计算出这10位获奖编号吧。
输入格式:
输入一行,两个整数m和n,其中1<m<n≤100000
输出格式:
如果能够找出10位获奖编号,则按照从小到大的顺序输出这10个获奖编号,中间用空格隔开。
如果满足条件的中奖编号数量小于10,则额外在第二行输出字符串“Go on !”
解析:
可能有同志们
很好奇
我都已经发过第一题和第三题了
怎么到现在才发第二题
实不相瞒
这道题
我只得了
40分
我花了一些时间
改正了一下
现在是正确的了
其实大部分同志
看过题目以后会发现
这道题其实特别特别的简单
但我为什么会错呢
这道题
上面要求
如果数目大于或等于10
直接输出前10个
如果小于10
就把所有的都输出来
再输出一个“Go on !”
就可以了
前面的判断也可以简便一点
要求%2、%3、%5以后都余1
其实也就是%30余1罢了
也很简单
下面附上代码!!!
代码:
#include<bits/stdc++.h>
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int n,m,sum=0,a[10001];
int main()
{
cin>>n>>m;
for(int i=n;i<=m;i++)
{
//cout<<"1234455"<<endl;
if((i%2==1)&&(i%3==1)&&(i%5==1)&&(sum<=10))
{
sum++;
a[sum]=i;
}
}
//cout<<"1234455"<<endl;
if(sum<=9)
{
for(int i=1;i<=sum;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"Go on !"<<endl;
}
else
{
for(int i=1;i<=10;i++)
cout<<a[i]<<" ";
}
return 0;
}
拜拜!!!