您的位置:首页 > 编程语言

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

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



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

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; }

运行结果:





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博客专栏================= 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  整数取反