前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

UVA 202

作者头像
dejavu1zz
发布2020-10-23 15:13:42
2610
发布2020-10-23 15:13:42
举报
文章被收录于专栏:奇妙的算法世界

题意

给出两个数 a,b,求a和b的循环小数以及循环节长度

AC代码

代码语言:javascript
复制
#include<iostream>
#include<cstring>
#include<cmath>
#define MAX_N 100005
int main()
{
	int a,b;
	int num[MAX_N],res[MAX_N];
	while(scanf("%d%d",&a,&b)!=EOF){
		memset(num,-1,sizeof(num));
		int c=a%b,cnt=0;
		c*=10;
		while(num[c]==-1){
			res[cnt]=c/b;
			num[c]=cnt++;
			c%=b;
			c*=10;
		}
		int start=num[c];
		printf("%d/%d = %d.",a,b,a/b);
		for(int i=0;i<start;i++){
			printf("%d",res[i]);
		}
		printf("(");
		if(cnt-start<=50){
			for(int i =start;i<cnt;i++){
				printf("%d",res[i]);
			}
			printf(")\n   %d = number of digits in repeating cycle\n\n",cnt-start);
		}else{
			for(int i=start;i<start+50;i++){
				printf("%d",res[i]);
			}
			printf("...)\n   %d = number of digits in repeating cycle\n\n",cnt-start);
		}
	} 
	return 0;
}

总结与收获

这道题终究没有自己做出来,还是看了题解,自己的思维还是不够灵活,经常被禁锢在很小的一块地方,而没有扩展出去,向外发散,继续努力

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题意
  • AC代码
  • 总结与收获
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档