1 条题解

  • 0
    @ 2025-4-12 21:52:29

    C :

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int a,n,x,i,l;
    	int qq[100];
    	while(scanf("%d%d",&a,&n)!=EOF)
    	{
    		l=0;
    		x=n;
            int tt[200]={0};
    		while(n)
    		{
    			memset(qq,0,sizeof(int)*100);
    			for(i=n-1;i>=0;i--)
    			{
    				qq[i]=a;
    			}
    			for(i=0;i<n;i++)
    			{
    				tt[i]+=qq[i];
    			}
    			n--;
    		}
    		for(i=0;i<200;i++)
    		{
    			if(tt[i]>=10)
    			{
    				tt[i+1]+=tt[i]/10;
    				tt[i]%=10;
    			}
    		}
    		for(i=199;i>=0;i--)
    		{
    			if(tt[i]!=0)l=1;
    			if(l==1)printf("%d",tt[i]);
    		}
    		printf("\n");
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    
    void Add(char *str1,char *str2,char *str3)
    {
    	int i,j,i1,i2,tmp,carry;
    	int len1=strlen(str1),len2=strlen(str2);
    	char ch;
    	i1=len1-1;
    	i2=len2-1;
    	j=carry=0;
    	for(;i1>=0&&i2>=0;++j,--i1,--i2)
    	{
    		tmp=str1[i1]-'0'+str2[i2]-'0'+carry;
    		carry=tmp/10;
    		str3[j]=tmp%10+'0';
    	}
    	while(i1>=0)
    	{
    		tmp=str1[i1--]-'0'+carry;
    		carry=tmp/10;
    		str3[j++]=tmp%10+'0';
    	}
    	while(i2>=0)
    	{
    		tmp=str2[i2--]-'0'+carry;
    		carry=tmp/10;
    		str3[j++]=tmp%10+'0';
    	}
    	if(carry)
    		str3[j++]=carry+'0';
    	str3[j]='\0';
    	for(i=0,--j;i<j;++i,--j)
    	{
    		ch=str3[i];
    		str3[i]=str3[j];
    		str3[j]=ch;
    	}
    }
    
    int main()
    {
    	char s[200],t[200],ans[200];
    	int n,i,l;
    	while(scanf("%s%d",&s,&n)!=EOF)
    	{
    		strcpy(ans,s);
    		for(i=2;i<=n;i++)
    		{
    			l=strlen(s);
    			s[l]=s[0];
    			s[l+1]='\0';
    			Add(ans,s,t);
    			strcpy(ans,t);
    		}
    		puts(ans);
    	}
    	return 0;
    }
    

    Pascal :

    type data=array[0..10000] of integer;
    
    var a,b,c:data;
        stb,st:string;
        i,j,m,n,lenb:longint;
    
    function  gaojia(a,b:data):data;
       var i,j,len:integer;
           c:data;
       begin
         fillchar(c,sizeof(c),0);
         if a[0]>b[0] then len:=a[0] else len:=b[0];
    
         for i:=1 to len do
            begin
              c[i]:=c[i]+a[i]+b[i];
              c[i+1]:=c[i+1]+c[i] div 10;
              c[i]:= c[i] mod 10;
         end;
    
        if c[len+1]>0 then c[0]:=len+1 else c[0]:=len;
        gaojia:=c;
      end;
    
    
    begin
      while not eof do
        begin
          readln(m,n);
          fillchar(a,sizeof(a),0);
          a[0]:=1;a[1]:=0;
          str(m,st);stb:='';
          for i:=1 to n do
            begin
              stb:=stb+st;
              lenb:=length(stb);
              b[0]:=lenb;
              for j:=1 to lenb do val(stb[j],b[lenb-j+1]);
              c:=gaojia(a,b);
              a:=c;
           end;
         for j:=c[0] downto 1 do  write(c[j]);
         writeln;
      end;
    end.
    
    
    
    
    
    
    
    
    

    Java :

    public class Main {
      public static void main(String[] args) { 
      java.util.Scanner in= new java.util.Scanner(System.in) ;
      while(in.hasNextInt()){
      int a=in.nextInt();
      int n=in.nextInt();
      String sum="";
      int k =0;
      for(int i=n;i>=1;i--){
      int m=i*a+k;
      int s=m%10;
      sum=(char)(s+48)+sum;
      k=m/10;
    } if(k!=0)
      sum=Integer.toString(k)+sum;
      System.out.println(sum);
    }
    }
    }
        
    
    • 1

    信息

    ID
    2063
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者