PTA(Basic Level) 1079:延迟的回文数(C语言实现)

川长思鸟来 2023-07-25 08:39 58阅读 0赞

PTA(Basic Level) 1079:延迟的回文数(C语言实现)

  1. #include <stdio.h>
  2. #include <string.h>
  3. void reverse(char s[])
  4. {
  5. int i,j;
  6. char t;
  7. for(i=0,j=strlen(s)-1; i<j; i++,j--)
  8. {
  9. t=s[i];
  10. s[i]=s[j];
  11. s[j]=t;
  12. }
  13. }
  14. void add(char s1[],char s2[])
  15. {
  16. int i,c=0;
  17. for(i=strlen(s1)-1; i>=0; i--)
  18. {
  19. s1[i+1]=(s1[i]-'0'+s2[i]-'0'+c)%10+'0';//结果放在s1中
  20. c=(s1[i]-'0'+s2[i]-'0'+c)/10;
  21. }
  22. if(c>0)
  23. s1[0]=c+'0';
  24. else
  25. {
  26. for(i=1; s1[i]; i++)
  27. s1[i-1]=s1[i];
  28. s1[i-1]='\0';
  29. }
  30. }
  31. int main()
  32. {
  33. int i;
  34. char s1[10000]="",s2[10000]="";
  35. gets(s1);
  36. for(i=0; i<10; i++)
  37. {
  38. strcpy(s2,s1);
  39. reverse(s2);//逆转
  40. if(strcmp(s1,s2)==0)//回文与回文的逆转数相等
  41. {
  42. printf("%s is a palindromic number.",s1);
  43. break;
  44. }
  45. else
  46. {
  47. printf("%s + %s = ",s1,s2);
  48. add(s1,s2);//字符串加
  49. printf("%s\n",s1);
  50. }
  51. }
  52. if(i == 10)
  53. printf("Not found in 10 iterations.");
  54. return 0;
  55. }

发表评论

表情:
评论列表 (有 0 条评论,58人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言

    问题描述   1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式   按从小到大的顺序输出满足条件的四位十进制数。

    相关 C语言算法实现

    问题描述 “回文”是指正读反读都能读通的句子。它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这种特征,成为回文数(pal