1. 程式人生 > >POJ NOI MATH-7830 求小數的某一位

POJ NOI MATH-7830 求小數的某一位

總時間限制:
1000ms
記憶體限制:
65536kB
描述

分數a/b化為小數後,小數點後第n位的數字是多少?

輸入
三個正整數a,b,n,相鄰兩個數之間用單個空格隔開。0 < a < b < 100,1 <= n <= 10000。
輸出
一個數字。
樣例輸入
1 2 1
樣例輸出
5
來源
《奧數典型題舉一反三(小學五年級)》 (ISBN 978-7-5445-2882-5) 模擬試卷二 第3題

問題分析

  不斷地使用分數進行計算,才能精確地算出小數點後的第n位。計算過程中,分母不變,分子不斷在變化。

程式說明

  (略)。

AC的C++語言程式:

#include <iostream>

using namespace std;

int main()
{
    int a, b, n;
    int numerator, decimal;

    cin >> a >> b >> n;

    numerator = a % b;
    decimal = numerator * 10 / b;

    for(int i=1; i<n; i++) {
        numerator = numerator * 10 % b;
        decimal = numerator * 10 / b;
        
        if(numerator == 0)
            break;
    }

    cout << decimal << endl;

    return 0;
}


相關推薦

POJ NOI MATH-7830 小數

總時間限制:1000ms記憶體限制: 65536kB描述 分數a/b化為小數後,小數點後第n位的數字是多少? 輸入三個正整數a,b,n,相鄰兩個數之間用單個空格隔開。0 < a < b < 100,1 <= n <= 10000。輸出一個數字

《資訊奧賽本通》1082:小數

1082:求小數的某一位 時間限制: 1000 ms 記憶體限制: 65536 KB 【題目描述】 分數a/b化為小數後,小數點後第n位的數字是多少? 【輸入】 三個正整數a,b,n,相鄰兩個數之間用單個空格隔開。0<a<b<100,1≤n≤10000。 【輸出】

OpenJudge_P7830 小數

總時間限制: 1000ms 記憶體限制: 65536kB 描述 分數a/b化為小數後,小數點後第n位的數字是多少? 輸入 三個正整數a,b,n,相鄰兩個數之間用單個空格隔開。0 < a &

Noi 題庫:小數

描述 分數a/b化為小數後,小數點後第n位的數字是多少? 輸入 三個正整數a,b,n,相鄰兩個數之間用單個空格隔開。0 < a < b < 100,1 <= n <=

天是那年的第幾星期,比如2008年1月8日?

視頻下載 全部 style 源碼 2008年 dex class ner ont 題目7: 2008年1月8日是那年中的第幾星期?(視頻下載) (全部書籍) 本章源碼 import java.util.*;public class Test { public stat

生信(五)awk列的平均值

關鍵詞:awk awk是生信人必須要掌握的命令列工具。為啥?因為它太強大了。我們舉一個例子來說明。 假設我們有一個1000萬行的檔案,大概長這樣: 怎麼求第四列的平均數呢? Python版本 我們可以用幾行Python程式碼解決,比如這樣: 其耗時: R版

【LeetCode】Longest Common Subsequence最長公共子序列(解+LCS長度)

Longest Common Subsequence 給出兩個字串,找到最長公共子序列(LCS),返回LCS的長度。 說明 最長公共子序列的定義: • 最長公共子序列問題是在一組序列(通常2個)中找到最長公共子序列(注意:不同於子串,LCS不需要是

POJ NOI MATH-7829 神奇序列求和

總時間限制:1000ms記憶體限制: 65536kB描述 有一個序列,初始時只有兩個數x和y,之後每次操作時,在原序列的任意兩個相鄰數之間插入這兩個數的和,得到新序列。舉例說明: 初始:1 2 操作1次:1 3 2 操作2次:1 4 3 5 2 …… 問操作n次之後,得

POJ NOI MATH-7648 蓄水池水管問題

總時間限制:1000ms記憶體限制: 65536kB描述 蓄水池有甲、丙兩條進水管和乙、丁兩條排水管。 要灌滿一池水,單開甲管需要a小時,單開丙管需要c小時;要排光一池水,單開乙管需要b小時,單開丁管需要d小時。 現在池內沒有水,如果按甲乙丙丁的順序迴圈單開各水管,每次每管

excel列對應的字母表示

其實就是把一個十進位制數轉換成26進位制,但是這個26進位制數沒有0,只有1-26: 兩種處理方法: #include <assert.h> #include <algorithm> #include <vector> using nam

【劍指offer】序列中的數字

題目描述 數字以01234567891011121314…的格式序列化到一個字元序列中,在這個序列中,從0開始數,第5位是5,第13位是1,第19位是4,等等,請寫一個函式,求任意第n位對應的數字。 求出每一位對應的數字總和,然後判斷。注意邊界條件不好處理時,可以採用while true

java改變byte的

今天在對下位機發送指令的時候,由於下位機是根據byte裡面的某一位值來確定某個功能是否需要開啟/關閉的,因此控制下位機需要在改變某一位值的同時保留其他值不變。 這裡以改變第2位值為例。 剛開始時頭腦比較蒙,首先想到用int陣列來儲存對應byte的值,然後改變後對下的下標值來達到效

C#面試題:判斷個數的二進位制是否是1

判斷一個數的二進位制位的某一位是否是1. 程式碼如下: bool IsThirdBitOne(int num,int n){       //使用ToString()方法,轉換成二進位制,第二個引數只能是,2,8,16;       string s=Convert.

獲取二進位制數中的值

題目描述 獲取數字 num 二進位制形式第 bit 位的值。注意: 1、bit 從 1 開始 2、返回 0 或 1 3、舉例:2 的二進位制為 10,第 1 位為 0,第 2 位為 1 示例1 輸入 複製 128, 8 輸出 複製 1 我的解答: func

如何取得指定的int型資料中的二進位制值(1還是0)

public static void main(String[] args) { int num = 19; String binaryString = In

採用運算,如果想將整數的二進位制翻轉可採用id^=(1

id &= ~(1<<x) :右起第x位置置為0。  //多加一個翻轉 id |= (1<<x) :右起第x位置置為1。 id ^=(1<<x) :右起第x位置置翻轉,1翻轉為0,或0翻轉為1 ----------------

C# 設定和獲取一個位元組的的值的方法

自己工作中遇到需要對單位元組的高位、低位進行賦值,即一個位元組byte,想要給每一位都賦值,這個值是動態來的,是0或是1。好不容易收集到一些珍貴資料,整理一下:一、設定方法code:         /// <summary>        /// 設定某一位的值

C++ 設定的值

#include <iomanip> #include <iostream>void bithandle(unsigned char value, unsigned char bit) { using namespace std; unsign

想要更改個數據中的的狀態時可使用異或直接操作

 例如 想更改1100 1001 中的第三位  可以將其與 0000 1000進行異或操作   1100 1001 ^ 0000 1000 = 1100 0001  這在微控制器開發中應用非常常見  另外,想要將某一位置一的時候就使用或 | 1  置零使用 &0

解決POI匯入Excel時,數字精確到小數的問題

今天在做匯入Excel的功能,遇到一個操蛋的問題,那就是如果excel某列為數字,例如123, POI 讀取會變成 123.0  如果遇到一些數字密碼或者手機號之類的需求,那可怎麼辦? 網上搜了一些辦法,使用後還是或多或少有點問題,於是想了一個不是方法的方法,如下程式碼片