我10ms過
原本在自己電腦測的時候以為會TLE
作一個轉換函數把10進制的數字轉成2進制的字串
外迴圈是從0~n^2-1
內迴圈是輸出n個位元
程式給你參考一下
#include <stdio.h>
int ipow(int a,int b){
int t,i;
for(t=1,i=0;i<b;i++)
t*=a;
return t;
}
void dtob(int a,char *b,int n){
int i;
for(i=0;i<n;i++){
if(a<=0){
b[i]='0';
continue;
}
b[i]=a%2+'0';
a/=2;
}
}
int main(){
int n,i,j,p;
char str[18];
while(scanf("%d",&n)!=EOF){
p=ipow(2,n);
for(i=0;i<p;i++){
dtob(i,str,n);
for(j=n-1;j>=0;j--)
printf("%c",str[j]);
printf("\n");
}
}
return 0;
}
我10ms過
原本在自己電腦測的時候以為會TLE
作一個轉換函數把10進制的數字轉成2進制的字串
外迴圈是從0~n^2-1
內迴圈是輸出n個位元
程式給你參考一下
#include
int ipow(int a,int b){
int t,i;
for(t=1,i=0;i t*=a;
return t;
}
void dtob(int a,char *b,int n){
int i;
for(i=0;i if(a<=0){
b[i]='0';
continue;
}
b[i]=a%2+'0';
a/=2;
}
}
int main(){
int n,i,j,p;
char str[18];
while(scanf("%d",&n)!=EOF){
p=ipow(2,n);
for(i=0;i
2^16 = 65536
先離線做好,然後直接印出ok嗎?