Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

c语言的源代码

Posted by 1115267126 at 2016-03-04 17:42:40 on Problem 1001
#include<stdio.h>
#include<string.h>
void rmpoint(char a[],int* c)
{
	int i,j,p,c1;
	c1=0;
	char b[205];
	p=strlen(a);	
	for(i=0,j=0;i<p;i++)
	{
		if(a[i]=='.')
		{			
			c1=p-1-i;
			continue;			
		}
		a[j]=a[i];
		j++;
	}
	*c=c1;
	a[j]=0;
}
void chen(char a[],char b[])
{
	int c[410]={0};
	int i,j,sum,k,k1;
	k=409;
	k1=409;
	for(i=strlen(a)-1;i>=0;i--)
	{
		for(j=strlen(b)-1;j>=0;j--,k--)
		{
			sum=(a[i]-'0')*(b[j]-'0')+c[k];
			c[k-1]=c[k-1]+sum/10;
			c[k]=sum%10;
		}
		k=--k1;
	}

	for(i=0;i<410;i++)
		if(c[i]!=0)
			break;
	for(j=i,i=0;j<410;j++,i++)
		b[i]=c[j]+'0';
	b[i]=0;
}
void addpoint(char a[],char b[],int p)
{
	int i,j,p1,p2,j1,min;
	p2=0;
	p1=strlen(a);
	if(p1>=p)
	{
		p=p1-p;
		for(i=p1-1;i>=0;i--)
		{
			if(a[i]!='0')
				break;
			p2++;
		}
		if(p1-p2<p)
			min=p;
		else
			min=p1-p2;
		for(i=0,j=0;i<min;i++,j++)
		{
			if(p==i)
			{
				b[j]='.';
				i--;
				p--;
				continue;
			}
			b[j]=a[i];
		}
		b[j]=0;
	}
	else
	{
		b[0]='.';
		p=p-p1;
		for(i=p1-1,j1=0;p1>=0;i--)
		{
			if(a[i]!='0')
				break;
			j1++;
		}
		for(i=1,j=0;j<p;j++,i++)		
			b[i]='0';
		for(j=0;j<p1-j1;i++,j++)
			b[i]=a[j];
		b[i]=0;
	}
		
}
int main()
{
	char n1[7],n2[410],n3[410];
	int a,p,i;
	while(scanf("%s %d",n1,&a)==2)
	{
	rmpoint(n1,&p);
	strcpy(n2,n1);
	for(i=0;i<a-1;i++)
	{
		chen(n1,n2);
	}
	p=p*a;
	if(p!=0)
	addpoint(n2,n3,p);
	printf("%s\n",n3);
	}
	/*p=strlen(n3);
	for(a=0;a<p;a++)
		printf("%c",n3[a]);
	}*/
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator