【题意简述】:国王给骑士金币,第一天一枚,第二三天两枚,第四五六天三枚……,以此类推,现在问你,第N天,骑士共获得几枚金币?
【思路】: 在代码的注释中。。。
/* 236K 0Ms */
#include<iostream>
using namespace std;
int main()
{
int n;
int i,m,sum;
while(cin>>n&&n) //这里只要理解好,天数和硬币数目的关系即可,
{ //然后算到所求硬币所在的那一层包括这一层在内的和之前积累的金币数目累加在一起
sum = 0; //然后减去这一层中,他之后没有到达的天数所获得的硬币即可!
m = 0;
for(i = 1;sum <=n;i++)
{
m += i*i;
sum += i;
}
m -= (sum - n) * (i-1) ;
cout<<n<<" "<<m<<endl;
}
return 0;
}