本文主要是介绍循环小数UVA202,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入整数a和b,输出a/b的循环小数表示以及循环长度。例如a=5,b=43,小数表示为0.(116279069767441860465),循环节长度为21。
int one,count=0;
int m, n, next, flag = 0;;//除数和被除数
void fun()
{m *= 10;next = m%n;printf("%d",m/n);count++;m = next;if (next !=one) fun();
}
//使用递归
int main()
{scanf("%d%d", &m, &n);one = m;fun();printf("\n");printf("%d\n",count);return 0;
}
要注意的是,这样写虽然简单,可能会栈溢出,另外,m和n的关系应该在程序里面判断一下大小,提高鲁棒性
eg:1 2997
输出:00033367
9
eg:1 333
输出:003
3
这篇关于循环小数UVA202的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!