一.题目
二.分析与思路
输入a,b后保证a<b,编写一个函数来实现,然后根据三个条件遍历判断[a,b]之间的数累加,最后编写一个三数之间求最值的函数,找到余数最大值,输出注意格式,最值要求换行输出
三.代码实现
#include<bits/stdc++.h>
void ab(int* a,int* b){
if(*a>*b){
int c=*a;
*a=*b;
*b=c;
}
}//保证a<b函数
int maxs(int a,int b,int c){
if(a>=b&&a>=c)return a;
else if(b>=a&&b>=c)return b;
else if(c>=a&&c>=b)return c;
}//最大值函数
int main()
{
int a,b;
scanf("%d%d",&a,&b);
ab(&a,&b);
int ans1=0;//第一种
int ans2=0;//第二种
int ans3=0;//第三种
for(int j=a;j<=b;j++){
if(j%3==0)ans1++;
if(j%4==0)ans2++;
if(j%5==0&&j%2!=0)ans3++;
}
int max=maxs(ans1%ans2,ans2%ans3,ans1%ans3);
printf("%d %d %d\n%d",ans1,ans2,ans3,max);//注意换行
return 0;
}
四.评价
个人感觉题目有问题吧,示例的最大值都是三数中第二大的数,并不是余数啊?存疑存疑.....