C/C++の宿題片付けます 126代目 at TECH
[2ch|▼Menu]
297:デフォルトの名無しさん
09/05/26 22:56:50
>>291 なんとか1レスに納めた。修正ヨロ
#include<stdio.h>
#define MB_UNIT 10000
#define MB_SIZE 18
typedef struct tag_mb_t{ long data[MB_SIZE]; }mb_t;
mb_t mb_mul(mb_t a, int n){
long i, tmp, carry=0;
for(i=0;i<MB_SIZE;i++){
tmp=a.data[i]*n+carry;
a.data[i]=tmp%MB_UNIT;
carry=tmp/MB_UNIT;
}
return a;
}
int mb_sprint(char buf[MB_SIZE*4+1], mb_t a){
char i, *p=buf;
for(i=MB_SIZE-1;i>0 && a.data[i]==0;i--);
p+=sprintf(p, "%ld", a.data[i]);
for(i--;i>=0;i--) p+=sprintf(p, "%04ld", a.data[i]);
return p-buf;
}
int main(void){
char buf[MB_SIZE*4+1], i, len53;
mb_t x[54]={{{1}}};
for(i=1;i<=53;i++) x[i]=mb_mul(x[i-1], i);
len53=mb_sprint(buf, x[53]);
for(i=1;i<=53;i++){
mb_sprint(buf, x[i]);
printf("%*s\n", len53, buf);
}
return 0;
}


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5337日前に更新/150 KB
担当:undef