0
已解决
李玥仑
中级光能
中级光能
题目描述 Description
最近合肥下了好多天雨,周末班主任组织班级同学们去欢乐谷游玩,大家都很开心,同学们玩了好多东西,大家都很疲劳了,在这个时候,小明和同学们看到了一个开启智慧之门游戏。小明和同学决定去看看究竟。欢迎同学来到智慧之门,来这里得同学需要一定得智慧,才能参观游玩,智慧之门门主提出了一个问题,只有回答出来得同学才能参观游玩下一个节目,智慧之门门主首先提出了一个数学问题给你一个正整数10,求1到10之间所有的5的倍数之和。小明快速得到答案15,这时候智慧之门门主说,如果给你任意一个正整数是N(N≤10^10),求1到N之间所有的5的倍数之和,这个时候大家都在思考中,小明得意的笑了,因为他是信息学爱好者,可以编程实现。
输入描述 Input Description
输入只有一行,正整数N
输出描述 Output Description
输出只有一行,1到N之间所有的5的倍数之和S
样例输入 Sample Input
10
样例输出 Sample Output
15(因为1~10之间只有5和10是5的倍数)
献上我的五彩斑斓代码
int n,sum=0;
cin>>n;
for(int i;i<=n;i++){
if(i%5==0){
sum+=i;
}
}
cout<<sum;
(5个测试点对,2个测试点错,3个测试点超时)
0
0
0
0
江子周
中级守护
中级守护
还有,建议这道题不用枚举,用数学方法(N<=10^10,枚举会TLE)
首先找到0
再找到<=n的最大的%5=0的数
求出项数:(末尾一项-0)/5+1
等差数列求和:(首项+末项)*项数/2
结束~
(这竟然还是1分题……)
0