『算法-ACM竞赛-数学-数论』HDU - 6124 Euler theorem (打表找规律)

『算法-ACM 竞赛-数学-数论』HDU - 6124 Euler theorem (打表找规律)

HazelFan is given two positive integers a,b, and he wants to calculate amodb. But now he forgets the value of b and only remember the value of a, please tell him the number of different possible results.
Input
The first line contains a positive integer T(1≤T≤5), denoting the number of test cases.
For each test case:
A single line contains a positive integer a(1≤a≤109).
Output
For each test case:
A single line contains a nonnegative integer, denoting the answer.
Sample Input
2
1
3
Sample Output
2
3
这个题比较水,用了 map 还是不如线性递推快,但是线性递推就超时了,于是打表找规律,然后发现规律如下。
在这里插入图片描述
于是可写出代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n&1)
printf("%d\n",n/2+2);
else
printf("%d\n",n/2+1);
}
return 0;
}

『算法-ACM竞赛-数学-数论』HDU - 6124 Euler theorem (打表找规律)
https://chiamzhang.github.io/2024/06/29/『算法-ACM竞赛-数学-数论』HDU - 6124 Euler theorem (打表找规律)/
Author
Chiam
Posted on
June 29, 2024
Licensed under