第一天给1块,后两天給2块,再后3天给3块。。
就是求12+22+32+...n2
有公式的,但是不记得了,就硬算了,注意处理最后多出来的几天就可以了
G++提交。
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
int n,t,res;
while(scanf("%d",&n)){
if(n==0)break;
res=0;
int m=(int)sqrt(n);
while(m*(m+1)/2<=n)m++;
for(int i=1;i<m;i++)res+=i*i;
res+=(n-m*(m-1)/2)*m;
printf("%d %d\n",n,res);
}
return 0;
}
本文探讨了一个特定数列求和的问题,并通过优化算法解决了实际应用中可能出现的多天处理问题。通过数学公式推导和编程实现,提高了算法效率,特别关注于处理末尾天数不足完整周期的情况。
594

被折叠的 条评论
为什么被折叠?



