编程程序,把输入的有理数转换为无限循环小数
例:
输入 3 7
输出 0.[428571]
C++实现:
//输出循环小数,中括号包括循环节 //输入 3 7 //输出 0.[428571] /* * @name : main.cpp * @author: DYBOY * @time: 2018/03/09 */ #include <iostream> using namespace std; //main 函数 int main(){ int zi,mu,new_beichushu,ini_num = 0; //分子,分母 ,余数 cout<<"Please input the fenzi(x) & fenmu(y)->(<0x<y):"; cin>>zi>>mu; new_beichushu = zi; //被除数为分子 int arr[1000],shang[1000]; //临时存储 for(int i = 0;i<1000;i++){ arr[i] = -1; shang[i] = 0; } //初始化 while(new_beichushu != 0 && arr[new_beichushu] == -1) { //当被除数等于0的时候,表示已经除尽了 arr[new_beichushu] = ini_num; //如果商中出现相同数组下标 ,此处为之后判断做出依据 new_beichushu = new_beichushu * 10; //除法规则 ini_num++; shang[ini_num] = new_beichushu/mu; //整除存储商 new_beichushu = new_beichushu % mu; //得到余数 } //输出 cout<<"zi/mu = 0."; if(new_beichushu != 0){ for(int i = 1;i<=arr[new_beichushu];i++){ cout<<shang[i]; } cout<<"["; for(int i=arr[new_beichushu]+1;i<=ini_num;i++){ cout<<shang[i]; } cout<<"]"; } else{ for(int i=1;i<=ini_num;i++){ cout<<shang[i]; } } return 0; }
运行结果:
版权声明:《 [C++]求分数转小数得到小数循环节 》为DYBOY原创文章,转载请注明出处!
最后编辑:2018-6-13 20:06:06
2020-03-03 10:51
2019-12-31 20:56