HDU-5142NPY and FFT

// 这个题直接模拟就行,把数表示成二进制,然后翻转一下,再倒着算出来,就行了

AC代码:

#include<stdio.h>
#include<string.h>
#define N 100000
int a[N]; int b[N]; int main() { int t;
    scanf("%d",&t); while(t--) { int n;
        scanf("%d",&n); int cnt=0; while(n>0) {
            a[cnt++]=n%2;
            n/=2; } int sum=0; int i; int x=0; for(i=0;i<cnt;i++) { if(a[i]==0) {
                x++; } else { break; } }
       // int sum=0;
 int k=0; for(i=cnt-1;i>=x;i--) {
            sum+=(a[i]<<k);
            k++; }
        printf("%d\n",sum); } return 0; }


你可能感兴趣的:(HDU-5142NPY and FFT)