chennuo2938 @ 2022-01-22 21:44:20
#include<bits/stdc++.h>
using namespace std;
int main()
{
int z=0,x=1;
int k;
cin>>k;
for(int i=1;i<=k;i+=x)
{
for(int j=1;j<=x;j++)
{
z+=x;
}
x++;
}
cout<<z;
return 0;
}
by _Spectator_ @ 2022-01-22 22:16:22
@chennuo2938 这份代码连样例都过不了呢……
注意第一重循环不能每次加 x,否则会导致当最后不满一个周期时最后一个周期的金币不会被算进去。
by waauto @ 2022-01-23 17:40:51
最后一周期没算啊我的宝
by Wechis @ 2022-02-13 17:21:20
其实 用枚举大法
我们会发现,d表示接下来领取工资为n的天数,当d = n时……
#include <iostream>
using namespace std;
int mon(int day){//day表示每位追随的天数
int d = 0, n = 1, sum = 0;
for(int i = 1; i <= day; i++){
d++;
sum += n;
if(d == n){
n++;
d = 0;
}
}
return sum;
}
int main(){
int k;
cin >> k;
cout << mon(k) << endl;
return 0;
}
毫无疑问的
赶快回到题目里吧( 此为传送门 )