题解 | #[NOIP2015]金币#
[NOIP2015]金币
https://www.nowcoder.com/practice/8f71f5670e6a45118d24d13868a2da9e
#include <stdio.h>
//问题剖析(自我理解用):
// 总体上可以分为两个循环,以输入的总天数6为例。6 = 1 + 2 + 3
// | / \ /|\
// 1 2 2 333
// 1 2 3 456
int main() {
int day = 0;
int sum = 0;
int count = 0;
scanf("%d", &day);
for (int i = 1; count < day; i++) {
for (int j = 0; j < i; j++) {
sum += i;
count++;
if (count == day) {
break;
}
}
}
printf("%d", sum);
return 0;
}
// 两种写法,顺便可以看下goto 和break的区别;
//能用break的一定可以用goto,反之不一定
// int main() {
// int day = 0;
// int sum = 0;
// int count = 0;
// scanf("%d", &day);
// for (int i = 1; i < day; i++) {
// for (int j = 0; j < i; j++) {
// sum += i;
// count++;
// if (count == day) {
// goto here;
// }
// }
// }
// here:
// printf("%d", sum);
// return 0;
// }


