循环小数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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值