33,028
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fun(int n){
int i,j,k,x,y,len;
char a[20],b[35];
printf("%d-->",n);
if(n<=0){
printf("0\n");return;
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
sprintf(a,"%d",n);
len=strlen(a);
if(len==1){
if(n<9) printf("%d\n",n+1);
else printf("11\n");
}else if(len%2==1){
for(i=0;i<(len/2+1);i++) b[i]=a[i];
k=atoi(b);
for(i=len/2-1,j=len/2+1;i>=0;i--,j++){
if(a[i]!=a[j]) break;
}
if(j==len||a[i]<a[j]){
k++;
printf("%d",k);
sprintf(b,"%d",k);
for(i=len/2-1;i>=0;i--) printf("%c",b[i]);
printf("\n");return;
}
if(a[i]>a[j]){
printf("%d",k);
for(i=len/2-1;i>=0;i--) printf("%c",a[i]);
printf("\n");return;
}
}else{
i=len/2-1;
j=i+1;
for(k=0;k<=i;k++) b[k]=a[k];
if(a[i]>a[j]){
printf("%s",b);
for(k=i;k>=0;k--) printf("%c",b[k]);
printf("\n");return;
}
if(a[i]==a[j]){
for(x=i-1,y=j+1;x>=0;x--,y++){
if(a[x]!=a[y]) break;
}
if(y==len||a[x]<a[y]){
k=atoi(b);
k++;
sprintf(b,"%d",k);
printf("%d",k);
for(x=i;x>=0;x--) printf("%c",b[x]);
printf("\n");return;
}
if(a[x]>a[y]){
printf("%s",b);
for(x=i;x>=0;x--) printf("%c",b[x]);
printf("\n");return;
}
}
if(a[i]<a[j]){
k=atoi(b);
k++;
sprintf(b,"%d",k);
printf("%d",k);
for(x=i;x>=0;x--) printf("%c",b[x]);
printf("\n");return;
}
}
}
int main(){
fun(121);
return 0;
}#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fun(int n){
int i,j,k,x,y,len;
char a[20],b[35];
printf("%d-->",n);
if(n<=0){
printf("0\n");return;
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
sprintf(a,"%d",n);
len=strlen(a);
if(len==1){
if(n<9) printf("%d\n",n+1);
else printf("11\n");
}else if(len%2==1){
for(i=0;i<(len/2+1);i++) b[i]=a[i];
k=atoi(b);
for(i=len/2-1,j=len/2+1;i>=0;i--,j++){
if(a[i]!=a[j]) break;
}
if(j==len){
printf("%d\n",n);return;
}
if(a[i]>a[j]){
printf("%d",k);
for(i=len/2-1;i>=0;i--) printf("%c",a[i]);
printf("\n");return;
}
if(a[i]<a[j]){
k++;
printf("%d",k);
sprintf(b,"%d",k);
for(i=len/2-1;i>=0;i--) printf("%c",b[i]);
printf("\n");return;
}
}else{
i=len/2-1;
j=i+1;
for(k=0;k<=i;k++) b[k]=a[k];
if(a[i]>a[j]){
printf("%s",b);
for(k=i;k>=0;k--) printf("%c",b[k]);
printf("\n");return;
}
if(a[i]==a[j]){
for(x=i-1,y=j+1;x>=0;x--,y++){
if(a[x]!=a[y]) break;
}
if(y==len){
printf("%d\n",n);return;
}
if(a[x]>a[y]){
printf("%s",b);
for(x=i;x>=0;x--) printf("%c",b[x]);
printf("\n");return;
}
if(a[x]<a[y]){
k=atoi(b);
k++;
sprintf(b,"%d",k);
printf("%d",k);
for(x=i;x>=0;x--) printf("%c",b[x]);
printf("\n");return;
}
}
if(a[i]<a[j]){
k=atoi(b);
k++;
sprintf(b,"%d",k);
printf("%d",k);
for(x=i;x>=0;x--) printf("%c",b[x]);
printf("\n");return;
}
}
}
int main(){
fun(1);
fun(9);
fun(21);
fun(12);
fun(231);
fun(123);
fun(1222);
fun(2111);
return 0;
}#include <stdio.h>
#include <string.h>
void fun(int n){
int i,j,k,len;
char a[35],b[35];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
sprintf(a,"%d",n);
len=strlen(a);
for(i=len-1,j=0;i>=0;i--,j++) b[i]=a[j];
for(i=0;i<len-1;i++){
if(a[i]!=a[len-1]) continue;
for(j=len-2,k=i+1;k<j;j--,k++){
if(a[k]!=a[j]) break;
}
if(k<j) continue;
for(k=i-1,j=len;k>=0;k--,j++){
a[j]=a[k];
}
break;
}
if(i==len-1){
for(i=len-2,j=len;i>=0;i--,j++) a[j]=a[i];
}
for(i=0;i<len-1;i++){
if(b[i]!=b[len-1]) continue;
for(j=len-2,k=i+1;k<j;j--,k++){
if(b[k]!=b[j]) break;
}
if(k<j) continue;
for(k=i-1,j=len;k>=0;k--,j++){
b[j]=b[k];
}
break;
}
if(i==len-1){
for(i=len-2,j=len;i>=0;i--,j++) b[j]=b[i];
}
i=strlen(a);
j=strlen(b);
if(i>j) printf("%d-->%s\n",n,b);
else if(j>i) printf("%d-->%s\n",n,a);
else{
for(k=0;k<i;k++){
if(a[k]!=b[k]) break;
}
if(k==i){
printf("%d-->%s\n",n,a);return;
}
if(a[k]>b[k]) printf("%d-->%s\n",n,b);
else printf("%d-->%s\n",n,a);
}
}
int main(){
fun(12333);
fun(321);
fun(12332);
fun(2147483647);
return 0;
}#include <stdio.h>
#include <string.h>
void fun(int n){
int i,j,k,len;
char a[20],b[20];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
sprintf(a,"%d",n);
len=strlen(a);
for(i=len-1,j=0;i>=0;i--,j++) b[i]=a[j];
for(i=0;i<len-1;i++){
if(a[i]!=a[len-1]) continue;
for(j=len-2,k=i+1;k<j;j--,k++){
if(a[k]!=a[j]) break;
}
if(k<j) continue;
for(k=i-1,j=len;k>=0;k--,j++){
a[j]=a[k];
}
break;
}
if(i==len-1){
for(i=len-2,j=len;i>=0;i--,j++) a[j]=a[i];
}
for(i=0;i<len-1;i++){
if(b[i]!=b[len-1]) continue;
for(j=len-2,k=i+1;k<j;j--,k++){
if(b[k]!=b[j]) break;
}
if(k<j) continue;
for(k=i-1,j=len;k>=0;k--,j++){
b[j]=b[k];
}
break;
}
if(i==len-1){
for(i=len-2,j=len;i>=0;i--,j++) b[j]=b[i];
}
i=strlen(a);
j=strlen(b);
if(i>j) printf("%d-->%s\n",n,b);
else if(j>i) printf("%d-->%s\n",n,a);
else{
for(k=0;k<i;k++){
if(a[k]!=b[k]) break;
}
if(k==i){
printf("%d-->%s\n",n,a);return;
}
if(a[k]>b[k]) printf("%d-->%s\n",n,b);
else printf("%d-->%s\n",n,a);
}
}
int main(){
fun(12333);
fun(321);
fun(12332);
return 0;
}
count=int(raw_input())
t=[]
for i in xrange(count):
t.append(raw_input())
print apply(palindrome,t)
报了个错:non-zero exit code
#palindrome函数返回最小回文数
def palindrome(num):
length=len(num)
num_9=0
for i in xrange(length):
if num[i]=="9":
num_9+=1
if num_9==length:
q_num=""
for i in xrange(length):
q_num+="0"
q_num="1"+q_num[1:]+"1"
return q_num
if length%2==1:
if num[:length/2]>num[::-1][0:length/2]:
num=num[:length/2]+num[length/2]+num[:length/2][::-1]
else:
if num[length/2]==9:
num=str(int(num[:length/2-1])+1)+num[length/2:-1]
else:
num=str(int(num[:length/2+1])+1)+num[length/2+1:-1]
num=num[:length/2]+num[length/2]+num[:length/2][::-1]
else:
if num[:length/2]>num[::-1][0:length/2]:
num=num[:length/2]+num[:length/2][::-1]
else:
num=str(int(num[:length/2])+1)+num[length/2+1:-1]
num=num[:length/2]+num[:length/2][::-1]
return num
count=int(raw_input())#要处理的数的个数
for i in xrange(count):
t=raw_input()
print palindrome(t)