题目:假设你有一只股票并只买了一块钱的,该股票第二天涨一块,第三天跌一块,第四天涨一块,第五天涨一块,第六天跌一块,......
也就是如下序列:1,+1,-1,+1,+1,-1,+1,+1,+1,-1,......
求第n天后,该股票的价值是多少?
代码:
#include <iostream>
using namespace std;
// 题目:1, +1, -1, +1, +1, -1, +1, +1, +1, -1, ...
// n天后的收益
//看成:(1), (+1, -1), (+1, +1, -1), (+1, +1, +1, -1), ...
long CountMoney(long n) {
if (n == 1) return n;
long result = 0;
long sum = 0;
long i;
for (i = 1; i <= n; i++) {
sum = i * (i + 1) / 2;
if (sum >= n)
break;
}
if (sum > n) {
i--;
}
result = n - 2 * i + 2;
return result;
}
int main() {
long n = 0;
while (cin >> n) {
cout << CountMoney(n) << endl;
}
return 0;
}