解题思路:
这个其实就是n一直加到m;你要知道从1加到14就是105,是15的倍数
但是就是有些东西不需要算,比如输入14,31;完全不需要从14加到31,只需要14+31=14+31%15就可以了;
因为从16到29就相当于从1到14,而15,跟30本来就是15的倍数,取余就是0;
然后来找一下规律
如果输入14 33 就是 14 +31%15+32%15+33%15 是不是很麻烦,所以就是14 +(从1加到33%15)
如果输入3 33 就是 3+4+5+6+7+8+9+10+11+12+13 +14 +31%15+32%15+33%15,就是 (从3加到14)+(从1加到33%15)
所以输入 n,m;
就是 从n%15加到14加从1加到m%15,然后再对15取余就可以了(第一次写题解,希望大家看得懂)
注意事项:
我不知道long long 可不可以直接取余,所以用m-m/15*15
参考代码:
#include<iostream>
using namespace std;
long long m,n;
int main()
{
int i=0,j=0,s=0;
cin>>m>>n;
int a=m-m/15*15;
int b=n-n/15*15;
for(i=a;i<15;i++)
{
s=s+i;
}
for(j=b;j>0;j--)
{
s+=j;
}
s=s%15;
cout<<s;
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复