NC231915. 简单的工资发放问题
描述
输入描述
输入只有一行,包含一个正整数 ,表示助理获得金币的天数。
输出描述
输出只有一行,包含一个整数,即骑士收到的金币数。
示例1
输入:
6
输出:
14
说明:
助理第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14枚金币。示例2
输入:
1000
输出:
29820
C 解法, 执行用时: 3ms, 内存消耗: 316K, 提交时间: 2021-12-19 15:08:36
#include<stdio.h> int main() { int t,a=1,sum=0; scanf("%d",&t); for(int i=0;i<t;) { int b=a; while(b--) { sum+=a; i++; if(i>=t)break; } a++; } printf("%d",sum); }
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 432K, 提交时间: 2022-12-01 15:12:01
#include<bits/stdc++.h> using namespace std; int main(){ int a,sum=0,j=0,i=1; cin>>a; while(j<a){ sum+=i; j++; if(j>=(i+1)*i/2) i++; } cout<<sum; return 0; }
Python3 解法, 执行用时: 43ms, 内存消耗: 4564K, 提交时间: 2022-01-06 15:53:54
n = int(input()) i = 0 t = 0 sum = 0 while i <= n: i += t sum += t * t t += 1 print(sum - (i - n) * (t - 1))