zoukankan      html  css  js  c++  java
  • 历届试题 小数第n位(小技巧)

    问题描述
      我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。
      如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。
      本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。
    输入格式
      一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)
    输出格式
      一行3位数字,表示:a除以b,小数后第n位开始的3位数字。
    样例输入
    1 8 1
    样例输出
    125
    样例输入
    1 8 3
    样例输出
    500
    样例输入
    282866 999000 6
    样例输出
    914
    #include <stdio.h>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    long long a,b,n;
    int main(){
        scanf("%I64d %I64d %I64d", &a, &b, &n);
        long long t = a % b;
        if(t == 0){
            cout<<"000";
            return 0;
        }
        int count = 0;
        int flag = 0;
        while(--n){
            if(t == 0)
                break;
            t = t * 10;
            t = t % b;
            count++;
            if(t == a % b)
                n = n % count;
        }
        if(!t)
            cout<<"000";
        else{
            t = t * 10;
            cout<< t / b;
            t = t % b;
            
            t = t * 10;
            cout<< t / b;
            t = t % b;
            
            t = t * 10;
            cout<< t / b;            
        }
        return 0;
    }
  • 相关阅读:
    希尔排序
    折半插入排序
    自学git心得-2
    读书笔记-1 《人月神话》
    USTCCourseCommunity 项目介绍
    自学git心得-1
    HDU 2006 求奇数的乘积
    HDU 2007 平方和与立方和
    HDU 2005 第几天?
    HDU 2004 成绩转换
  • 原文地址:https://www.cnblogs.com/woxiaosade/p/10352113.html
Copyright © 2011-2022 走看看