HDU2608 0 or 1【数学规律】

0 or 1

Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4342 Accepted Submission(s): 1277

Problem Description
Solving problem is a interesting thing. Yifenfei like to slove different problem,because he think it is a way let him more intelligent. But as we know,yifenfei is weak in math. When he come up against a difficult math problem, he always try to get a hand. Now the problem is coming! Let we
define T(n) as the sum of all numbers which are positive integers can divied n. and S(n) = T(1) + T(2) + T(3)……+T(n).

Input
The first line of the input contains an integer T which means the number of test cases. Then T lines follow, each line consists of only one positive integers n. You may assume the integer will not exceed 2^31.

Output
For each test case, you should output one lines of one integer S(n) %2. So you may see the answer is always 0 or 1 .

Sample Input
3
1
2
3

Sample Output
1
0
0

Hint
Hint S(3) = T(1) + T(2) +T(3) = 1 + (1+2) + (1+3) = 8
S(3) % 2 = 0

问题链接HDU2608 0 or 1
问题简述:(略)
问题分析:数学规律题。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* HDU2608 0 or 1 */

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t;
    scanf("%d", &t);
    while(t--) {
        int n, cnt = 0;

        scanf("%d", &n);

        for(int i = 1; i <= n; i++) {
            if(i * i * 2 <= n) cnt++;
            if(i * i <= n) cnt++;
            else break;
        }

        printf("%d\n", cnt % 2);
    }

    return 0;
}
原创文章 2323 获赞 2382 访问量 269万+

猜你喜欢

转载自blog.csdn.net/tigerisland45/article/details/105671663