有道难题,来自:http://www.youdao.com/nanti/news.html

开始自己写了代码,该程序能正常工作,但对某些数字不能得出正确的结果,汗了半天没有找出问题所在。

以下是我的源代码:

#include <stdio.h> #include <stdlib.h> #define NUMLEN 15 //数字的最多位数 #define END -38 //输入结束标志 /*START:有道难题-UnrepeatingNunbers*/ int main(void) { int numarray[NUMLEN]={0}; int i; int endpos; int add=1; //进位标志,为1时表示产生了进位,初始化为1 int flag=1; //若在一次遍历中,数字有改动,则还要做一次,此时flag==1 for(i=1;(numarray[i]=getchar()-'0')!=END;i++) ; endpos=i; numarray[endpos]=11; while(flag==1) { for(i=endpos-1;i>=0;--i) //给该数加1 ((numarray[i]+=add)>9)?(numarray[i]-=10,add=1):(add=0); for(flag=0,i=endpos-1;i>0;--i) { if(numarray[i]==numarray[i-1]) { flag=1; numarray[i]++; } } }//while if(numarray[i]!=0) //i从for出来是0 printf("%d",numarray[i]); while(++i<endpos) printf("%d",numarray[i]); return EXIT_SUCCESS; } /*END*/

后来参考了参考答案,发现我把问题大大地想复杂了……不得不佩服别人的思想啊,太聪明了。

以下是我参考答案写出来的代码,答案使用的是/10,%10来取各位的数字。我是实用的数组。大同小异。

#include <stdio.h> #include <stdlib.h> #include <string.h> #define NUMLEN 15 //数字的最多位数 #define END -38 //输入结束标志 /*START:有道难题-UnrepeatingNunbers*/ //算法二 int main(void) { int numarray[NUMLEN]={0}; int endpos; int i; int add=1; for(i=1;(numarray[i]=getchar()-'0')!=END;i++) //输入数据 ; endpos=i-1; while(add==1) //将数字加1 ((numarray[--i]+=add)==10)?(numarray[i]=0):(add=0); for(i=0;i<endpos &&numarray[i]!=numarray[i+1];i++) ; if(i++<endpos) { for(add=1;add==1;i--) //给该位置加1,并处理进位情况 ((numarray[i]+=add)==10)?(numarray[i]=0):(add=0); i+=2; memset(&numarray[i],0,((endpos-i+1)*sizeof(int))); //给该位之后的所有位赋0 for(++i;i<=endpos;i+=2) numarray[i]=1; } i=0; if(numarray[i]!=0) printf("%d",numarray[i]); while(++i<=endpos) printf("%d",numarray[i]); return EXIT_SUCCESS; } /*END*/

有的地方的逻辑表达式稍微复杂了点,估计过段时间我自己都看不懂了,汗……

聪明人真的太多太多了……

有道难题- Unrepeating Nunbers相关推荐

  1. 看有道难题比赛有恶心感 ,付源码挑战,博客园目前纯速度最快。

    编码比赛,感觉是武林大会一样 本来很高兴 不过后来发现主要要装jre?罢了 6-1后看园子里各位兄弟都在做题目,看了以后感觉非常难过,恶心! 同时有另一个首页文章谈到了++i.i++的题目 其实问题一 ...

  2. 网易有道难题,铩羽而归。

    5月31日参加 网易有道难题 ,结果铩羽而归. 先做的是500分题目: 题目要求:双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0<a<=b ...

  3. 判断手势_科目一题库里的4道难题,拿不到满分也正常,交警手势不好判断

    品牌宣传.产品推广,覆盖全国,日曝光量千万+,7500+公众号广告招商进行中,点击进入了解详情 点击上面蓝字即可关注↑点击右上角分享到朋友圈 现在很多人都在考取驾驶证,在考证的过程中,学员就需要经历四 ...

  4. 有道难题2010有道谜题标准答案

    有道难题2010网易编程挑战赛:http://www.youdao.com/nanti/index.html 欢迎报名参加由网易公司主办的"有道难题2010网易编程挑战赛".本次大 ...

  5. 网易有道胡琛:将“有道难题”做成中国编程爱好者的节日

    网易,一个对中国互联网影响至深的门户网站.搜索,一项给全世界计算机用户带来极好帮助的技术.我们无法想象,如果没有搜索,将会给我们的生活减少多少便利.网易有道,这个特别的名字,如今也逐渐为人们熟识和使用 ...

  6. 也谈网易“有道难题”在线解谜游戏

    今天下午忙活了一下午,参考各种资料,终于搞定了5-3到5-9的"有道难题"在线解谜游戏. 把解答列出来,方便以后回顾回顾. 答案有很多版本,有简单的有详细的. 简单的版本如下:(摘 ...

  7. 有道难题之eaglet的算法

    有道难题之eaglet的算法 刚才在园子里看到 周利华关于 "有道难题"的两道题的算法,eaglet 做了一下,第一题比周利华的算法快10倍左右,第二天快100倍左右.由于eagl ...

  8. 有道难题,我的OO解法

    本文背景是下面3篇文章: "有道难题"之ealget的算法 看有道难题比赛有恶心感 ,付源码挑战,博客园目前纯速度最快. 有道难题之OO 正文: 第一个类是Cell类(萝卜坑): ...

  9. 有道难题 双倍超立方数 的解答

    昨天进行的有道难题资格赛Group17中的"难题": Problem Statement     双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a, ...

最新文章

  1. 我的软考之路(九)——总结篇
  2. AngularJS中使用HTML5摄像头拍照
  3. IDC公布2017年亚太地区数据中心10大预测
  4. c# as 关键字作用
  5. 【Scratch】青少年蓝桥杯_每日一题_2.13_碰苹果
  6. excel单元格内容合并
  7. 微软发布人工智能教育与学习共建社区
  8. duration java_Java Duration类| plusDays()方法与示例
  9. 线性代数【5】矩阵和矩阵运算
  10. mysql数据库mha_MySQL高可用性大杀器之MHA
  11. Linux下如何判断磁盘类型,Linux下判断磁盘属于U盘、HDD盘或者SSD盘的方法
  12. Web前端学习笔记(三)——input标签的属性
  13. poj 2513 欧拉回路+并查集推断是否联通+Trie树
  14. python读取cad元素_python3读取autocad图形文件.py实例
  15. python加权求和_python求加权平均值的实例(附纯python写法)
  16. iphone7p配置参数详情_求iPhone7具体参数配置
  17. 什么是SysWow64,什么是System32
  18. 陕西中际现代:基于自适应算法的PLC滴灌控制系统
  19. Vue中使用v-if判断某个元素满足多个条件的简约写法-案例
  20. response概述

热门文章

  1. 三体船的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. 关于抽象类中的抽象方法和非抽象方法的问题
  3. latex从入门到精通
  4. 15计算机应用专业综合理论试卷答案,2013年南通市对口单招计算机应用专业综合理论第二次模拟试卷(含答案).doc...
  5. 交叉验证(Cross-Validation)
  6. 安卓6.0版本后出现的语音开启失败问题,错误码20006
  7. vue跳转链接(新页签)
  8. 如何提升自己的运气?提升运气财运的方法
  9. IP地址段与子网掩码
  10. 类似qq新闻提示窗口样码(cpy)