题目 简单的说就是将有限循环小数和无限循环小数转化为分数形式。比如: 0.9 = 9/10 0.333(3) = 1/3,其中括号表示循环节。
#include<iostream> #include<stdio.h> using namespace std; int gcd(int m,int n) //求公约数 { int r = 1; while(r) { r = m%n; m = n; n = r; } return m; } int main() { int a,b,c; cout<<"输入整数部分、不循环部分、循环部分:"<<endl; cin>>c>>a>>b; if(a==0&&b==0) cout<<c; else { int up=c; int down=1; int ta=a; while(ta) { down*=10; ta/=10; } up=c*down+a; if(b!=0) { int wb=1;//确定数目 int tb=b; while(tb) { wb*=10; tb/=10; } up=up*(wb-1)+b; down=down*(wb-1); } int fac=gcd(up,down); cout<<up/fac<<"/"<<down/fac<<endl; } return 0; }
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句