一、金币
解题:
# include<iostream> using namespace std; int main() { int k,sum=0,n=1;//发放金币的天数、拿到的金币数、发放n金币的天数n cin>>k; //先找出n while(n*(n+1)/2<k) { n++; } n-=1; //跳出循环时,n*(n+1)/2>=k for(int i=1;i<=n;i++) { sum+=i*i; } cout<<sum+(k-n*(n+1)/2)*(n+1); return 0; }
二、最长连号
解题:
# include<iostream> using namespace std; int main() { int n,count=1,max=1;//n个数、连号的数、最大连号数 long long num,b;//输入的整数、用于比较 cin>>n; cin>>num; b=num; // b等于输入的数 for(int i=0;i<n-1;i++) { cin>>num; if(num==b+1) count++; else count=1; if(count>max) max=count; b=num; } cout<<max; return 0; }