1 solutions

  • 0
    @ 2024-12-20 22:52:19

    C :

    #include<stdio.h>
    #include<string.h>
    
    char s[10001];
    
    int main()
    {
    	int i,len,hl,f;
    	while(scanf("%s",s)!=EOF)
    	{
    		len=strlen(s)-1;
    		hl=(len+1)>>1;
    		for(i=hl-1,f=0;i>=0&&!f;i--)
    			f=s[i]==s[len-i]?0:(s[i]>s[len-i]?1:-1);
    		if(f<=0)
    		{
    			s[len>>1]++;
    			for(i=len>>1;i&&s[i]>'9';i--)
    			{
    				s[i]='0';
    				s[i-1]++;
    			}
    			if(s[0]>'9')
    			{
    				s[0]='1';
    				len++;
    				hl=(len+1)>>1; 
    				s[hl]='0';
    			}
    		}
    		for(i=0;i<hl;i++)
    			putchar(s[i]);
    		for(i=hl-(len&1);i>=0;i--)
    			putchar(s[i]);
    		putchar(10);
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    
    char s[10001];
    
    int main()
    {
    	int i,len,hl,f;
    	while(scanf("%s",s)!=EOF)
    	{
    		len=strlen(s)-1;
    		hl=(len+1)>>1;
    		for(i=hl-1,f=0;i>=0&&!f;i--)
    			f=s[i]==s[len-i]?0:(s[i]>s[len-i]?1:-1);
    		if(f<=0)
    		{
    			s[len>>1]++;
    			for(i=len>>1;i&&s[i]>'9';i--)
    			{
    				s[i]='0';
    				s[i-1]++;
    			}
    			if(s[0]>'9')
    			{
    				s[0]='1';
    				len++;
    				hl=(len+1)>>1; 
    				s[hl]='0';
    			}
    		}
    		for(i=0;i<hl;i++)
    			putchar(s[i]);
    		for(i=hl-(len&1);i>=0;i--)
    			putchar(s[i]);
    		putchar(10);
    	}
    	return 0;
    }
    

    Pascal :

    program p1057;
    var a:array[0..10000] of integer;
        n,i,j,k,len,h1,bj:longint;
    	ch:char;
    function pd:boolean;
    var i:longint;
    begin
     pd:=true;
     for i:=1 to n do
      if a[i]<>9 then exit(false);
    end;
    function check(hh:longint):longint;
    var i:longint;
    begin
      check:=0; len:=0;
      for i:=hh to h1 do
    	if a[i]>a[n-i+1] then
    		 begin check:=-1; len:=i; exit; end
    	else if a[i]<a[n-i+1] then
    		begin check:=1;len:=i; exit; end;
    end;
    procedure out;
    var i:longint;
    begin
      if a[0]=0 then
       for i:=1 to n-1 do
       write(a[i])
      else
        for i:=0 to n-1 do
         write(a[i]);
      writeln(a[n]);
    
    end;
    begin
      while not eof do
        begin
    	 n:=0; a[0]:=0;
    	 while not eoln do
    	  begin
    	    n:=n+1;
    	    read(ch);
    	    a[n]:=ord(ch)-ord('0');
    	  end;
             readln;
             h1:=n div 2;
             if check(1)=0 then
             if pd then
             begin
               a[n]:=a[n]+2;
    	    j:=n;
    	    while a[j]>9 do
    	       begin
    	      	  a[j]:=a[j]-10;
    	          a[j-1]:=a[j-1]+1;
    	      	  j:=j-1;
    	   	end;
               out;
               continue;
             end
             else
             begin
                a[n]:=a[n]+1;
    	    j:=n;
    	    while a[j]>9 do
    	       begin
    	      	  a[j]:=a[j]-10;
    	          a[j-1]:=a[j-1]+1;
    	      	  j:=j-1;
    	   	end;
             end;
                i:=1;
                bj:=check(i);
               while bj<>0 do
    	    begin
    	    if bj<0 then a[n-len+1]:=a[len]
    	     else if bj>0 then
    		 begin
    		   a[n-len+1]:=a[len];
    		   a[n-len]:=a[n-len]+1;
    		   j:=n-len;
    		   while a[j]>9 do
    		    begin
    		      a[j]:=a[j]-10;
    		      a[j-1]:=a[j-1]+1;
    		      j:=j-1;
    		    end;
    		 end;
                bj:=check(len)
               end;
         out;
       end;
    end.
    
    
    
    

    Python :

    import sys
    for line in sys.stdin:
        K = line.split()[0]
        l = len(K)
        if l==1:
            if K[0]<'9':
                print str(int(K[0])+1)
            else:
                print '11'
        else:
            P=list(K)
            rng=l>>1
            if l%2==1:
                rng+=1
            for i in range(rng):
                P[l-i-1]=K[i]
            if cmp(''.join(P),K)<=0:
                i=l>>1
                while i<l:
                    n=int(P[i])+1
                    if n>9:
                        P[i]='0'
                        i+=1
                    else:
                        P[i]=str(n)
                        break;
                if i==l: P.append('1')
                K=[]
                l=len(P)
                rng=l>>1
                for i in range(rng):
                    K.append(P[l-i-1])
                for i in range(rng,l):
                    K.append(P[i])
                print ''.join(K)
            else:
                print ''.join(P)
    
    • 1

    Information

    ID
    791
    Time
    1000ms
    Memory
    32MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By