[算法]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;
}

运行结果:




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



运行结果:



最后提供一个简易版的算法,上面的代码都太差劲了

int fun(int a) 
{ 
int temp = 0; 
while(a) 
{ 
temp = temp*10 + a%10; 
a = a / 10; 
} 
return temp; 
}

很简单有木有,呵呵,看来算法还是很能考验一个程序员编程和思想的能力的!



==================== 迂者 丁小未 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
相关文章
|
1天前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
25 15
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 十六进制转八进制
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 十六进制转八进制
49 0
|
存储 算法 Serverless
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
75 0
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
|
Python
牛客刷题之数学基础-约数
牛客刷题之数学基础-约数
62 0
|
算法 安全
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
《蓝桥杯每日一题》trie树·143. 最大异或对
《蓝桥杯每日一题》trie树·143. 最大异或对
65 0
【蓝桥杯集训·每日一题】AcWing 3625. 幂次方
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 快速幂
70 0
|
人工智能
【蓝桥杯集训·每日一题】AcWing 3956. 截断数组
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 一维前缀和
70 0
|
存储 人工智能 算法
【蓝桥杯集训·每日一题】AcWing 3485. 最大异或和
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 前缀和 Tire树 贪心算法
171 0
|
人工智能 BI
【蓝桥杯集训·每日一题】Acwing 3729. 改变数组元素
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 一维差分 区间合并
92 0

热门文章

最新文章

下一篇
开通oss服务