【模拟】10216 - 分数化小数

【模拟】10216 - 分数化小数

Time Limit: 1000MS
Memory Limit: 25600KB

30分骗分算法

# include<cmath>
# include<stdio.h>
# include<stack>
# include<iostream>
# include<algorithm>
using namespace std;
stack<int>S;
const int maxn=10000;
int num[maxn];
int A,B,a,m,tot,ok=1,cur;
int main(){
    scanf("%d%d",&A,&B);
    if(A%B==0){printf("%d.0",A/B);return 0;}
    if(A>B){printf("%d.",A/B);A=A%B;ok=0;}
    a=A;
    for(int i=1;i<=maxn;i++){
        a=a*10;
        tot++;
        num[i]=a/B;
        a=a%B;
        if(a==0)break;
    }
    if(tot<maxn){if(ok)printf("0.");for(int i=1;i<=tot;i++)printf("%d",num[i]);return 0;}
    int q=1;int t=num[1];for(int i=1;i<=maxn;i++)if(num[i]!=t){q=0;break;}
    if(q){if(ok)printf("0.");printf("(%d)",num[1]);return 0;}

    return 0;
}

这题很水就是看你想不想得到模拟小数点时

Mod到相同的余数那么与之前余数相同的之间的数十循环的

TMD小学数学老师死的早

时间: 2024-10-21 06:15:16

【模拟】10216 - 分数化小数的相关文章

分数化小数

Fractions to Decimals Write a program that will accept a fraction of the form N/D, where N is the numerator and D is the denominator and print the decimal representation.If the decimal representation has a repeating sequence of digits, indicate the s

分数化小数(decimal) 白书习题 2-5

1 /* 2 分数化小数(decimal) 白书习题 2-5 3 输入正整数 a , b , c , 输出 a/b 的小数形式,精确到小数点后 c 位 .a,b<=10^6 , c <= 100. 4 输入包含多组数据,结束标志为 a = b = c = 0 ; 5 */ 6 #include<stdio.h> 7 int main() 8 { 9 int a,b,c,y; //y用来存储 a/b 的余数 10 while(scanf("%d%d%d",&

每日一练第5天:分数化小数

输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位.a,b≤10 6 ,c≤100.输入包含多组数据, 结束标记为a=b=c=0. 样例输入: 1 6 4 0 0 0 样例输出: Case 1: 0.1667 这道题靠计算机本身来做除法是会出现精度问题的,所以要模拟数学上的除法: 1 #include <stdio.h> 2 3 int main() 4 { 5 int a, b, c, ct = 1; 6 while(3 == scanf("%d%d%d",

[LeetCode]58. Fraction to Recurring Decimal分数化小数

Given two integers representing the numerator and denominator of a fraction, return the fraction in string format. If the fractional part is repeating, enclose the repeating part in parentheses. For example, Given numerator = 1, denominator = 2, retu

分数化小数(C++)

输入整数a, b ,c, 输出a/b的小数形式,精确到小数点后c位,a, b ≤ 10^6, c ≤ 100.输入包含多组数据, 结束标记为a = b = c = 0. 答案如下 #include<iostream> #include<cmath> using namespace std; int main() { int a, b, c, m; int con[100]; cin >> a >> b >> c; while (a != 0 &a

22. 分数化小数 decimal

题目: 输入正整数a, b,c,输出 a / b 的小数形式,精确到小数点后 c 位.a ,b <= 10^6, c <= 100.输入包含多组数据,结束标记为 a = b = c = 0. 样例输入: 1 6 4 0 0 0 样例输出: Case 1: 0.1667 思路: 按照步骤计算即可. 代码: #include <iostream>#include <iomanip>using namespace std; int main(){ int a = 0, b =

紫书 习题2-5 分数化小数

1 #include<stdio.h> //基础版 2 #define MAX 110 3 4 int main(void) 5 { 6 int a, b, c; 7 scanf("%d %d %d",&a,&b,&c); 8 9 int integer = a/b; 10 int remainderTemp=a%b; 11 int arr[MAX]; 12 13 for(int i = 0; i< c; i++){ 14 int result

白书p35 习题2-4 分数化小数(decimal)

#include<stdio.h> int main() { int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { if(a==0&&b==0&&c==0) break; int y=a%b; printf("%d.",a/b); for(int i=0;i<c-1;i++) { y*=10; printf("%d",y/b);

(hdu step 2.1.8)小数化分数2(小数化分数——包括了循环小数化分数的情况)

题目: 小数化分数2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2783 Accepted Submission(s): 993   Problem Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?请你写一个程序不但可以