CodeForces - 964A(找规律)
原题
题意:给你个数N,问你能得到多少种权重不同的分解(权重指将数分解成一个不上升的正整数序列后,序列中等于序列第一个数的个数)
思路:看到题感觉就是规律题,但是开始一直没搞懂输入8为啥出来5,如果能够简单将前几个数模拟一下,就会发现规律
n | ans |
- | - |
1 | 1
2 | 2
3 | 2
4 | 3
5 | 3
6 | 4
7 | 4
所以 ans=n/2-1
代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
cout<<n/2+1<<endl;
}
return 0;
}
戒骄戒躁,百炼成钢!