【九度OJ】题目1064:反序数 解题报告

标签(空格分隔): 九度OJ


原题地址:http://ac.jobdu.com/problem.php?pid=1064

题目描述:

设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)
求N的值

输入:

程序无任何输入数据

输出:

输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开

样例输入:

样例输出:

Ways

本来很简单的题目,应该一遍A的,可是还是遇到了问题,然后借助debug才解决掉,这样不好。

想法是把各位数字分别保存下来,然后求出其倒序数,再比较。

遇到的问题有两个,一是在第一遍循环之后,存储的数字已经是倒序,第二遍不用倒序。如n为1234,那么buf里面放的是4321,因为数字/10时是先从各位数字开始放到了buf里。

第二个问题是reverse 每次循环是是赋值关系 ,不是+/关系。即把原来的reverse扩大10倍再加上当前末尾数。

#include <stdio.h>

int main() {
int n = 1000;
while (n < 2000) {//2000*9 > 10000
int buf[4];
int temp = n;
int reverse = 0;
for (int i = 0; i < 4; i++) {
buf[i] = temp % 10;
temp /= 10;
}
for (int i = 0; i < 4; i++) {//注意对各位数字顺序已经是倒序
reverse = 10 * reverse + buf[i];//不是+=
}
if (n * 9 == reverse) {
printf("%d\n", n);
}
n++;
}
return 0;
}

既然这样,说明buf[]的意义已经不复存在,下面是精简了的代码。

#include <stdio.h>

int main() {
int n = 1000;
while (n < 2000) {
int temp = n;
int reverse = 0;
while (temp > 0) {
reverse = 10 * reverse + temp % 10;
temp /= 10;
}
if (n * 9 == reverse) {
printf("%d\n", n);
}
n++;
}
return 0;
}

Date

2017 年 3 月 5 日

最新文章

  1. centos7.0 下安装git(ssh方式)
  2. mac下xampp的mysql无法自动启动
  3. Moon.Orm 5.0(MQL版)的高性能,将发言权交给你!
  4. [Linux] 无法访问国外网站,完成epel源安装的解决办法--待续
  5. lodash链式使用
  6. HTML特殊转义字符对照表
  7. A Byte of Python 笔记(8)
  8. remove()和直接使用system的一个差别
  9. JS经常使用正則表達式【分享】
  10. PHPCMS V9 导航栏当前栏目高亮
  11. Cngigure和BUS实现远端配置
  12. Navi.Soft31.产品.微信聊天(永久免费)
  13. beta冲刺4-咸鱼
  14. 工具(3): 转换Excel表格到MarkDown:exceltk
  15. Ubuntu安装后上网问题,
  16. resin4配置之一个resin下多个app的正确配置方法
  17. IDEA 启动项目前的配置--或过程遇到的问题
  18. 怎样利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置
  19. int main(int argc,char *argv[])与int main(int argc,char **argv)区别?
  20. 【平台兼容性】jeecg3.7 兼容weblogic 部署改造方案

热门文章

  1. php导出pdf,dompdf中文字体乱码解决办法(特别是代码迁移引起的乱码)
  2. Flannel 启动报错
  3. C#最大值
  4. 日常Java 2021/10/13
  5. A Child&#39;s History of England.38
  6. C# 设计模式(1)——简单工厂模式、工厂模式、抽象工厂模式
  7. Learning Spark中文版--第四章--使用键值对(2)
  8. Scala(七)【异常处理】
  9. 100个Shell脚本——【脚本2】截取字符串
  10. Git的使用-一个分支完全替换另一个分支