⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2760235_pe.cpp

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CPP
字号:
#include<stdio.h>
#define MAX 1001
int list[MAX][2],tail;
inline void initList(){
	int i;
	for(i=0;i<MAX;i++)list[i][0]=-1;
}
inline int in(int k){
	if(list[k][0]!=-1){
		return k;
	}else{
		return -1;
	}
}
inline void add(int k,int i){
	if(list[k][0]!=-1)return;
	list[k][0]=k;
	list[k][1]=i;
}
int remain;
inline void print(int i){
	char bu[999];
	int l,j;
	l=sprintf(bu,"%d",i);
	for(j=0;j<l;j++){
		printf("%c",bu[j]);
		remain--;
		if(!remain){
			printf("\n");
			remain=50;
		}
	}
}
inline void print(char c[]){
	int i;
	for(i=0;c[i];i++){
		printf("%c",c[i]);
		remain--;
		if(!remain){
			printf("\n");
			remain=50;
		}
	}
}
int main(){
	int a,b,i,x;
	while(1){
		scanf("%d%d",&a,&b);
		if(!a && !b)break;
		initList();
		remain=49;
		printf(".");
		if(!a)printf("0");
		x=1;
		i=0;
		while(a){
			if(!x){
				if(in(a)!=-1)break;
			}else{
				x=0;
			}
			add(a,i++);
			a*=10;
			if(a<b){
				print("0");
			}else{
				print(a/b);
				a%=b;
			}
		}
		if (remain)
		   printf("\n");
		if(!a){
			printf("This expansion terminates.\n");
		}else{
			printf("The last %d digits repeat forever.\n",i-list[in(a)][1]);
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -