Comment detail
LL Golf Hole 7 - バイト数を読みやすくする (Nested Flatten)一人だけ問題を読み違えているようですが・・・このまま行きます。 本体は155Byte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <stdio.h>
#include <string.h>
#define QWORD unsigned long long
#define DWORD unsigned long
#define WORD unsigned short
#define BYTE char
void conv_byte(char *p,QWORD n){
int m,i=7;strcpy(p,"0B");
if(n)while(i--)p+=(m=(n>>10*i)&1023)?sprintf(p,"%d%c",m,"BKMGTPE"[i]):i?0:sprintf(p,"B");
}
void conv_put(char *buf,QWORD n){
conv_byte(buf,n);
printf("%Ld=%s\n",n,buf);
}
int main(){
char buf[64];
conv_put(buf,(QWORD)-1);
conv_put(buf,(DWORD)-1);
conv_put(buf,(WORD)-1);
conv_put(buf,(BYTE)-1);
conv_put(buf,0);
conv_put(buf,(QWORD)1024*1024*1024*1024*1024*1024);
conv_put(buf,(QWORD)1024*1024*1024*1024*1024);
conv_put(buf,(QWORD)1024*1024*1024*1024);
conv_put(buf,(QWORD)1024*1024*1024);
conv_put(buf,(QWORD)1024*1024);
conv_put(buf,(QWORD)1024);
conv_put(buf,(QWORD)1);
return 0;
}
|
もう少し縮めた。 sprintf版は2文字関数名が増えてるけどタブ・改行含めて145byte、 printf版は同じく126byte・・・かな?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <stdio.h>
#include <string.h>
#define QWORD unsigned long long
#define DWORD unsigned long
#define WORD unsigned short
#define BYTE char
void s_conv_byte(char *p,QWORD n){
int m,i=7;
while(i--)p+=(m=(n>>10*i)&1023)|!i&!n?sprintf(p,"%d%c",m,"BKMGTPE"[i]):i?0:sprintf(p,"B");
}
void conv_byte(QWORD n){
int m,i=7;
while(i--)(m=(n>>10*i)&1023)|!i&!n?printf("%d%c",m,"BKMGTPE"[i]):i?0:printf("B");
}
void s_conv_put(char *buf,QWORD n){
s_conv_byte(buf,n);
printf("%Ld=%s\n",n,buf);
}
void conv_put(char *buf,QWORD n){
printf("%Ld=",n,buf);
conv_byte(n);
printf("\n");
}
int main(){
char buf[64];
conv_put(buf,(QWORD)-1);
conv_put(buf,(DWORD)-1);
conv_put(buf,(WORD)-1);
conv_put(buf,(BYTE)-1);
conv_put(buf,0);
conv_put(buf,(QWORD)1024*1024*1024*1024*1024*1024);
conv_put(buf,(QWORD)1024*1024*1024*1024*1024);
conv_put(buf,(QWORD)1024*1024*1024*1024);
conv_put(buf,(QWORD)1024*1024*1024);
conv_put(buf,(QWORD)1024*1024);
conv_put(buf,(QWORD)1024);
conv_put(buf,(QWORD)1);
return 0;
}
|



こう。 #7317() [ C ] Rating0/0=0.00
Rating0/0=0.00-0+
1 reply [ reply ]