[算法]CSDN编程挑战赛之整数取反

今天看了一下庞果网发布的编程挑战赛,我就做了一题目,结果却让我失望,没提交的上去,也不知道是网速原因还是什么,一直处于提交状态,然后我就没理它,一直耗到时间结束,但最后我发现,竟然记我一个挑战失败,好失望!关键是还没有重新挑战的机会。算了,关键是自己得到了锻炼就好!下面就共享我的算法,可能不是最优的算法,如果读者有什么好的建议或者是好的算法欢迎提出,一起交流!

题目:

[算法]CSDN编程挑战赛之整数取反


以下是我做的几个版本的代码:

C语言版本代码:

#include<stdio.h>  int reverse(int x) {     int yushu;     int res[20];     int jieguo=0;     int i=0;     if (x>0)     {         do          {             yushu=x%10;             res[i]=yushu;             x=x/10;             i++;         } while (x);         int ii=i-1;          for (int j=0;j<i;j++,--ii)         {             int r=1;             //printf("%d",res[j]);             for (int n=0;n<ii;n++)             {                 r*=10;             }             jieguo+=res[j]*r;         }         return jieguo;     }     //如果是负数     else     {         int jj = 0-x;         int jieguo1=reverse(jj);         jieguo1=0-jieguo1;         return jieguo1;     }      }  int main() {     int num;     printf("请输入数字:");     scanf("%d",&num);     printf("你输入的数字是:%d\n",num);     int n =reverse(num);     printf("转置后的数字是:%d",n);     return 0; }


C语言另外一版本:

#include<stdio.h>  int main() {     printf("题目1:整数取反\n");     char a[20],*p,*q;     int i,j;     p=a;     q=a;     for(i=0;i<20;i++)     {         scanf("%c",&a[i]);         if(a[i]!='\n')         {             p++;         }         else              break;     }     printf("取反后的数是:");     //如果是正数     if (*q!='-')     {         for(i;i>=0;i--)         {             printf("%c",*(--p));         }     }     //如果是负数     else     {         printf("%c",*q);         for (i;i>1;i--)         {             printf("%c",*(--p));         }     }     return 0; }

运行结果:

[算法]CSDN编程挑战赛之整数取反[算法]CSDN编程挑战赛之整数取反


C#版本代码:

#include<stdio.h>  int main() {     printf("题目1:整数取反\n");     char a[20],*p,*q;     int i,j;     p=a;     q=a;     for(i=0;i<20;i++)     {         scanf("%c",&a[i]);         if(a[i]!='\n')         {             p++;         }         else              break;     }     printf("取反后的数是:");     //如果是正数     if (*q!='-')     {         for(i;i>=0;i--)         {             printf("%c",*(--p));         }     }     //如果是负数     else     {         printf("%c",*q);         for (i;i>1;i--)         {             printf("%c",*(--p));         }     }     return 0; }



运行结果:

[算法]CSDN编程挑战赛之整数取反[算法]CSDN编程挑战赛之整数取反



==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

转载请注明出处:http://blog.csdn.net/dingxiaowei2013/article/details/17471827

欢迎关注我的微博:http://weibo.com/u/2590571922



















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366176,如需转载请自行联系原作者

上一篇:实战课堂:一则CPU 100%的故障分析处理知识和警示


下一篇:边缘检测算法