http://acm.hdu.edu.cn/showproblem.php?pid=4608

听说这个题是比赛的签到题。。。。。。无语。。。。。

问题:给你一个数x,求比它大的数y。
y的要求:
1、y>x
2、y的每一位数相加的和为10的倍数
3、求最小的y

直接模拟,个位数加一然后求各位数总和是否为10的倍数。。。

有的人还考虑了前导零和后导零导致错误。这个题不用考虑那么多。。。坑。。。。

这个题一开始做的好郁闷,没有考虑到
最高位进位,导致我提交全是WA,所以我用的数组存数据,而且是倒着存,即个位在x[0]处,这样存有个好处就是进位时不需要对整个数组
进行移动来给新的最高位空出位置(PS,其实好像也可以用习惯的存储,只要用a[0]来预存一个最高位进位,反正最多只会进位一次。。)

AC代码:
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4.  
  5. using namespace std;
  6.  
  7. char x[100010],b[100010];
  8.  
  9. int main()
  10. {
  11. int t,d,i,n,p;
  12. scanf("%d",&t);
  13. while(t--)
  14. {
  15. memset(x,0,sizeof(x));
  16. scanf("%s",&b);
  17. n = strlen(b);
  18. for(i = 0; i < n; i++)
  19. {
  20. x[n-1-i] = b[i];
  21. }
  22. n = strlen(x);
  23. // printf("n:%d\n",n);
  24. p = 1;
  25. while(p%10!=0)
  26. {
  27. p=d=0;
  28. x[0] += 1;
  29. // printf("%c ",x[n-1]);
  30. while(x[0+d] > '9') //处理进位
  31. {
  32. x[0+d] = '0';
  33. d++;
  34. if(d==n) //如果最高位再进位后更新长度并使新的最高位数为1
  35. {
  36. x[0+d] = '1';
  37. n++;
  38. }
  39. else
  40. {
  41. x[0+d] += 1;
  42. }
  43. // printf("d:%d n:%d",d,n);
  44. }
  45. for(i = 0; i < n; i++)
  46. {
  47. p += (int)(x[i]-'0');
  48. }
  49. }
  50. // printf("\n");
  51. for(i = n-1; i >= 0; i--)
  52. {
  53. printf("%c",x[i]);
  54. }
  55. printf("\n");
  56. }
  57.  
  58. return 0;
  59. }

杭电 HDU 4608 I-number的更多相关文章

  1. 杭电 HDU ACM 2795 Billboard(线段树伪装版)

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. 杭电 HDU ACM 1698 Just a Hook(线段树 区间更新 延迟标记)

    欢迎"热爱编程"的高考少年--报考杭州电子科技大学计算机学院 Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memor ...

  3. 杭电 HDU ACM Milk

    Milk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. 深搜基础题目 杭电 HDU 1241

    HDU 1241 是深搜算法的入门题目,递归实现. 原题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1241 代码仅供参考,c++实现: #incl ...

  5. 杭电 HDU 1242 Rescue

    http://acm.hdu.edu.cn/showproblem.php?pid=1242 问题:牢房里有墙(#),警卫(x)和道路( . ),天使被关在牢房里位置为a,你的位置在r处,杀死一个警卫 ...

  6. 杭电 HDU 1031 Design T-Shirt

    Design T-Shirt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  7. 杭电 HDU 2717 Catch That Cow

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. 杭电 HDU 1279 验证角谷猜想

    验证角谷猜想 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  9. ACM 杭电HDU 2084 数塔 [解题报告]

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

随机推荐

  1. 剑指offer-面试题18.树的子结构

    题目:输入两棵二叉树A和B,判断B是不是A的子结构. 二叉树节点定义如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; ...

  2. LeeCode-Remove Linked List Elements

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  3. WinForm常用代码

    //ToolStripSplitButton是标准按钮和下拉按钮的组合,各自工作,但有联系,感觉上后者是没有向下箭头ToolStripDropDownButton:ToolStripDropDownB ...

  4. dojo.create\dojo.place\dojo.empty\dojo.destroy\dojo.body

    1.dojo.create 1.create a node; 2.set attributes on it;  3.place it in the DOM. dojo.create(/*String| ...

  5. 使用API查询天气

    服务端代码 [HttpPost] public ActionResult GetWeather() { HttpWebRequest request = (HttpWebRequest)HttpWeb ...

  6. ProxyCreationEnabled 和 LazyLoadingEnabled 的关系

    我们会使用这两个设置来决定是否加载导航属性.默认情况这两个值都是true的,也就是说会以延迟加载的方式加载导航属性,也就是当我们访问导航属性的时候才会去查数据库获取导航属性的数据.db.Configu ...

  7. web.xml中<load-on-start>n</load-on-satrt>作用

    如下面一段配置,我们再熟悉不过了: 我们注意到它里面包含了这段配置:<load-on-startup>1</load-on-startup>,那么这个配置有什么作用呢? 作用如 ...

  8. mysql 命令

    1.查看数据库: mysql> show databases; 2.使用数据库 mysql> use mysqldata; 3.查看数据表 mysql> show tables; 4 ...

  9. 在windows下安装mysql

    本文主要讲mysql解压版在windows下的安装和配置,在官网http://www.mysql.com/下载mysql-cluster-gpl-7.3.7-winx64.zip,然后将mysql解压 ...

  10. Android 使用网络ADB调试.

    前提: android Phone和PC在同一局域网内. android Phone 有虚拟终端(CM系统集成了ADB网络调试,比较赞.); 1.在android phone虚拟终端输入 stop a ...