Description
给定一非负整数a,问
Input
第一行一整数T表示用例组数,每组用例输入一整数
Output
输出a%b有多少种取值
Sample Input
2
1
3
Sample Output
2
3
Solution
一.b>a时,a%b=a
二.1≤b≤a时,假设a%b=c
1.若0≤c<⌊a+12⌋,取b=a−c>c即可
2.若⌊a+12⌋≤c<a,设a=kb+c,则k≥1,而a=kb+c>(k+1)c≥2c≥a
故ans=⌊a+12⌋+1
Code
#include<cstdio>
using namespace std;
int T,n;
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
printf("%d\n",(n+1)/2+1);
}
return 0;
}