- 669 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 20:57:46 ]
- >>535 プログラムよりアルゴリズムの方が(数学が)難しかった
#include<stdio.h> int main(void){ int x, tmp, left, ans, digit_align; printf("正整数を入力してください > "); scanf("%d", &x); if(x<0){printf("\nError:正整数を入力してください\n");return 1;} for(digit_align=1;x/digit_align>=100;digit_align*=100); left=x/digit_align; ans=0; while(left>0 || digit_align>0){ for(tmp=9;tmp>0;tmp--) if((ans*20+tmp)*tmp<=left) break; if((ans*20+tmp)*tmp<0) break; // overflow? printf("%d", tmp); if(digit_align==1) printf("."); digit_align/=100; if(digit_align>0) left=(left-(ans*20+tmp)*tmp)*100+(x/digit_align)%100; else left=(left-(ans*20+tmp)*tmp)*100; ans=ans*10+tmp; } printf("\n"); return 0; }
|

|