Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找规律)

题目:

Mr. Panda is one of the top specialists on number theory all over the world. Now Mr. Panda is investigating the property of the powers of 2. Since 7 is the lucky number of Mr. Panda, he is always interested in the number that is a multiple of 7. However, we know that there is no power of 2 that is a multiple of 7, but a power of 2 subtracted by one can be a multiple of 7. Mr. Panda wants to know how many positive integers less than 2n in the form of 2k-1 (k is a positive integer) that is divisible by 7. N is a positive interger given by Mr Panda.

Input:

The first line of the input gives the number of test cases, T. T test cases follow. Each test case contains only one positive interger N.

output:

For each test case, output one line containing “Case #x: y”, where x is the test case number (starting from 1) and y is the answer.

题意:给出一个数N,找有多少个数,这些数的大小小于2N,且这些数符合2k-1的形式。

思路:把100以内的这种数和对应的N输出出来,会发现个数与N是成三倍的关系的。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <iomanip>
using namespace std;
vector<long double> v;

int read()
{
    int res = 0;
    char op = getchar();
    if(op>='0' && op<='9')
    {
        res = op-'0';
        op = getchar();
    }
    while(op>='0'&&op<='9')
    {
        res = res*10+op-'0';
        op = getchar();
    }
    return res;
}
int main()
{
    int T,n,cnt=1;
    T = read();
    while(T--)
    {
        int n;
        n = read();
        printf("Case #%d: %d\n",cnt++,n/3);
    }
    return 0;
}
View Code

猜你喜欢

转载自www.cnblogs.com/sykline/p/9747475.html