pku2539.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 45 行

CPP
45
字号
#include "stdio.h"
#include "math.h"
int main()
{
	__int64 nu[102];
	long t,a,b;
	int i,j,flag;
	while(scanf("%ld%ld%ld",&t,&a,&b)!=-1)
	{
		printf("(%d^%d-1)/(%d^%d-1) ",t,a,t,b);
		if(t==1||a%b!=0||log10(t)*(a-b)>=100)
		{
			puts("is not an integer with less than 100 digits.");
			continue;	
		}else
		{
			for(i=0;i<102;i++) nu[i]=0;
			nu[0]=1;
			for(j=1,flag=1;j<=a-b&&flag;j++)
			{
				for(i=0;i<102;i++) nu[i]*=t;
				if(j%b==0) nu[0]+=1;
				for(i=0;i<102;i++)
				{
					nu[i+1]+=nu[i]/10;
					nu[i]=nu[i]%10;
					if(nu[99]){flag=0;break;}
				}
				if(!flag) break;
			}
			if(flag)
			{
				for(i=101;i>=0&&nu[i]==0;i--);
				for(;i>=0;i--) printf("%I64d",nu[i]);	
			}else
			{
				printf("is not an integer with less than 100 digits.");	
			}
			puts("");	
		}	
	}
	return 0;
}

⌨️ 快捷键说明

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