zzuoj1081 三進位制小數
阿新 • • 發佈:2019-02-16
#include"stdio.h" #include"string.h" #include"stdlib.h" void solve(int p[]) { int i; if(p[10]>=2) p[9]++; else return; for(i=9;i>=0;i--) { if(p[i]>=3) { p[i]=0; p[i-1]++; } else break; } } int main() { int x,y,i; char a; int p[15]; while(scanf("%d%c%d",&x,&a,&y)!=EOF) { for(i=0;i<11;i++) { p[i]=3*x/y; x=(3*x)%y; } solve(p); printf("."); for(i=0;i<10;i++) printf("%d",p[i]); printf("\n"); } }
這個題是以水題名義放上去的,但是呢,關於精度這個問題我想不通,查了一下答案,是在後一位為2的時候要進位,這是不是就是精度的原理啊?希望某個大神看見後能給我解答,或者說是以後某一天我徹底搞懂了自己來回答吧,這個題我是這樣做的,每次呢要是需要補位的時候十進位制是在後面加0,也就是乘以十,當然三進位制乘以三就ok啦,哈哈哈,放程式碼了,精度問題疑問慢慢看,昨天寫了四道題哦,雖然都是水題,而且題也不是很多,但對我來說已經很不容易了