UVa748 - Exponentiation

2014-11-23 19:15:18 · 作者: · 浏览: 6

把浮点数当成整数来乘,最后再加上小数点即可。

C++代码:

#include 
#include 
const int maxnum=100000;
char s1[maxnum],s2[maxnum],ans[maxnum],temps[maxnum];
void add(char s[])
{
	int len_min=strlen(s)>strlen(ans) strlen(ans):strlen(s);
	int len_max=strlen(s)=0;--i)
		temps[i+n]=temps[i];
	for(i=0;i=0;--i)
		{
			if(num1[i]=='.')
				break;
			dot++;
		}
		if(i<0)
			dot=0;
		int flag=0;
		for(i=0;num1[i]!=0;++i)
		{
			if(num1[i]!='.')
				s1[i-flag]=num1[i];
			else
				flag=1;
		}
		s1[i]=0;
		switch_str(s1);
		strcpy(s2,s1);
		strcpy(ans,s1);
		for(j=1;j=0&&(ans[i]==0||ans[i]=='0');--i)
			ans[i]=0;
		dot=dot*n;
		if(strlen(ans)<=dot)
		{
			printf(".");
			for(i=dot-1;i>strlen(ans)-1;--i)
				printf("0");
			for(;i>=0;--i)
				printf("%c",ans[i]);
			printf("\n");
		}
		else
		{
			for(i=strlen(ans)-1;i>dot-1;--i)
				printf("%c",ans[i]);
			flag=1;
			for(j=0;j<=i;++j)
			{
				if(ans[j]!='0')
				{
					flag=0;
					break;
				}
			}
			if(j>i)
				printf("\n");
			else
			{
				printf(".");
				for(;i>=j;--i)
					printf("%c",ans[i]);
				printf("\n");
			}
		}
	}
	return 0;
}