【杭电】[2502]月之数

这里写图片描述
这里写图片描述

当时写的有些麻烦
其实只要记录1的个数就好了

#include<stdio.h>
#include<string.h>
#include<math.h>
int Rt(int a[],int N) {
    int i;
    for(i=0; N>=2; i++) {
        a[i]=N%2;
        N=N/2;
    }
    a[i]=N;
    return i;
}
int main() {
    int T,n,l,r;
    int i,j,k;
    int a[22];
    scanf("%d",&T);
    while(T--) {
        scanf("%d",&n);
        r=0;
        for(i=pow(2,n-1),j=0; i<pow(2,n); i++) {
            l=Rt(a,i);
            for(k=0; k<=l; k++) {
                if(a[k]==1)
                    r++;
            }
            memset(a,0,sizeof(a));
        }
        printf("%d\n",r);
    }
    return 0;
}

题目地址:【杭电】[2502]月之数

原文地址:https://www.cnblogs.com/BoilTask/p/12570085.html