| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:我已经做了好几个小时了!那位高手可以指点一下,或者给几个较大的数据吧。。。。In Reply To:我已经做了好几个小时了!那位高手可以指点一下,或者给几个较大的数据吧。。。。 Posted by:glaver at 2004-02-27 13:39:14 > #include "stdio.h"
> #include "math.h"
> #define Eof -1
> #define Max 200
> void SubMore(int sub[],int result[])
> {
> int i,ii,add=0,add_n;
> int tmp[Max]={0};
> for(i=0;sub[i]!=Eof;i++)
> {
> if(add!=0)
> {
> tmp[add_n]+=add;
> add=0;
> }
> add_n=i;
> for(ii=0;result[ii]!=Eof;ii++)
> {
> tmp[add_n]+=sub[i]*result[ii]+add;
> add=tmp[add_n]/10;
> tmp[add_n++]%=10;
> }
> }
> tmp[add_n]+=add;
> if(add==0) tmp[add_n]=Eof;
> else tmp[++add_n]=Eof;
> for(i=0;tmp[i]!=Eof;i++)
> result[i]=tmp[i];
> result[i]=Eof;
> }
> void Exchang(long x,int In[])
> {
> int i=0;
> while(x)
> {
> In[i++]=x%10;
> x/=10;
> }
> In[i]=Eof;
> }
>
> void Jian(int k1[],int k2[])
> {
> int i,add=0;
> for(i=0;k1[i]!=Eof;i++)
> {
> k2[i]+=-k1[i]+add;
> add =(k2[i]+10)/10-1;
> k2[i]-=10*add;
> }
> while(add!=0)
> {
> k2[i]+=add;
> add =(k2[i]+10)/10-1;
> k2[i]-=10*add;
> }
> }
>
> void Input(int k[])
> {
> int i=-1;
> while(k[++i]!=Eof);
> for(i--;i!=-1;i--) printf("%d",k[i]);
> printf("\n");
> }
>
> main()
> {
> int i,ii;
> int n,dev_m;
> long m;
> int num1[15];
> int num2[15];
> int result[Max],tmpp[Max];
> scanf("%d %ld",&n,&m);
> ii=sqrt(m);
> dev_m=1;
> for(i=2;i<=ii;i++)
> {
> if(m%i!=0) continue;
> dev_m++;
> if(i!=m/i) dev_m++;
> }
>
> Exchang(m,num1);
> Exchang(m,result);
> Exchang((long)dev_m,num2);
> Exchang((long)dev_m,tmpp);
> for(i=1;i<n;i++)
> {
> SubMore(num1,result);
> SubMore(num2,tmpp);
> }
> Jian(tmpp,result);
> Input(result);
>
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator