祺谕09


私信TA

用户名:qiyu

访问量:2785

签 名:

等  级
排  名 12391
经  验 974
参赛次数 5
文章发表 2
年  龄 21
在职情况 学生
学  校 武汉科技大学城市学院
专  业 计算机科学与技术

  自我简介:

TA的其他文章

解题思路:

这个其实就是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分

3 人评分

  评论区

  • «
  • »