高中生程式解題系統:新手訓練 ~ 陣列應用

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 http://zerojudge.tw/ShowProblem?problemid=a248

此題和台中女中程式解題系統的 c046: 3.小數點後N位 一題類似,解法是以「除法的直式計算」的觀念,搭配程式的迴圈來實作。

程式碼一:
#include <cstdio>

int main() {
 int a, b, n;
 
    while(scanf("%d%d%d", &a, &b, &n) != EOF)
 {
  printf("%d.", a / b);
  
  a = a % b;
  for(int i = 0; i < n; i++)
  {
   a = a * 10;
   printf("%d", a / b);
   a = a % b;
  }
  
  printf("\n");
 }
    return 0;
}


程式碼二:
  1. /**********************************************************************************/  
  2. /*  Problem: c046 "3.小數點後N位" from 108校內初賽                                         */  
  3. /*  Language: C++                                                                 */  
  4. /*  Result: AC (4ms, 180KB) on ZeroJudge                                          */  
  5. /*  Author: pinglunliao at 2019-10-28 14:27:35                                    */  
  6. /**********************************************************************************/  
  7.   
  8. #include <iostream>  
  9.   
  10. using namespace std;  
  11.   
  12. int main(void) {  
  13.     int a, b, d;  
  14.     cin >> a >> b >> d;  
  15.   
  16.     cout << a/b << ".";  
  17.   
  18.     a = (a % b) * 10;  
  19.   
  20.     for(int i = 0; i < d; i++)  
  21.     {  
  22.         cout << a/b;  
  23.         a = (a % b) * 10;  
  24.     }  
  25.   
  26.     return 0;  
  27. }  

沒有留言: