2012年3月10日 星期六

a248: 新手訓練 ~ 陣列應用

內容 :
    大家都知道,小算盤的小數運算只能算出小數點後三十幾位
    但好奇的桑葉想知道更精準的小數值
    請你幫可憐的桑葉做出可以算出精準的小數運算的程式

輸入說明 :
    每次輸入有三個正整數 a, b, N
    1<= a , b <= 2147483647
    1 <= N <= 10000
    ( 輸入不會超過1000筆 )

輸出說明 :
    請輸出 a / b 的小數運算結果
    精準到小數點後N位
    第N位以後請無條件捨去

範例輸入 :
18467 41 10
26500 6334 10
15724 19169 10
10 5 3

範例輸出 :
450.4146341463
4.1837701294
0.8202827481
2.000

提示 :
    背景知識: 一維陣列
    改編自 a240: 第一題:1 / 17 小數第 n 位

程式碼 :
#include<stdio.h>

int main()
{
    int a,b,i,n;
    char s[10001];
    
    while(scanf("%d%d%d",&a,&b,&n)==3)
    {
        printf("%d",a/b);
        a = a % b;
        if(n > 0)
        {
            for(i=0; i<n; i++)
            {
                a = a * 10;
                s[i] = a / b + '0';
                a = a % b;
            }
            s[i] = '\0';
            printf(".%s",s);
        }
        printf("\n");
    }        
    return 0;
}


http://zerojudge.tw/ShowProblem?problemid=a248

沒有留言:

張貼留言