hdu 1282回文数猜想
http://acm.hdu.edu.cn/showproblem.php?pid=1282
特别说明:输入的数据保证中间结果小于2^31。
最开始的代码:(用尾递归)
#include<stdio.h> static int nCount=;
void func(int n)
{
int n2=n;
int tmp=;
while(n)
{
tmp*=;
tmp+=n%;
n/=;
}
if(n2==tmp)
{ printf("%d\n",n2);
printf("%d\n",nCount);
return;
}
else
{
int newVal=n2+tmp;
printf("%d--->",newVal);
nCount++;
func(newVal);
}
}
int main()
{
int n;
bool flag=true;
bool retVal;
while(scanf("%d",&n)!=EOF)
{
nCount=;
func(n); }
}
输出:
27228
109500--->115401--->219912--->219912
3
37649
132322--->355553--->355553
2
不满足要求,因为首先要输出变换的次数,这在程序中无法做到,因为nCount一开始不知道,我最开始项缓存printf()的输出,
类似php Ob_start() ;ob_ge_clean();但是C语言中没有类似方法。
最后参考网上一个代码:用数组保存结果:不要尾递归
int inverse(int num)
{
int num2=num;
int tmp=;
//使用循环把数字反转
while(num!=)
{
tmp*=;
tmp+=num%;
num/=;
}
return tmp;
}
int main()
{
int n,c[];
int count,i;
while(scanf("%d",&n)!=EOF)
{
count=;
c[count]=n;;
while(n!=inverse(n))
{
n+=inverse(n);
c[++count]=n;
}
printf("%d\n",count); for(i=;i<=count;i++)
{
if(i==)
printf("%d",c[i]);
else
printf("--->%d",c[i]);
}
printf("\n");
}
}
这里有点巧妙,用count作为索引。
参考;http://blog.csdn.net/ysc504/article/category/1294840
hdu 1282回文数猜想的更多相关文章
- hdu 1282 回文数猜想
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- HDOJ 1282 回文数猜想(回文串类)
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- 回文数猜想(hd1282)
回文数猜想 Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序 ...
- hdu1282回文数猜想
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- [HDU1282]回文数猜想
Problem Description 一 个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒 序数相加, ...
- 基于visual Studio2013解决C语言竞赛题之1060寻找回文数
题目 解决代码及点评 /* 60. 回文数指左右数字对称的数,如121,2112都是回文数.回文数猜想:取一任意十进制数,将其倒过来,并将这两个数相加, 然后把这个相加的和倒过来再与 ...
- 2016中国大学生程序设计竞赛(长春)-重现赛 1010Ugly Problem 回文数 模拟
Ugly Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- 合工大OJ 1331 回文数
Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数. 任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数, ...
- 回文数(vector的使用)
问题描述一个正整数,如果交换高低位以后和原数相等,那么称这个数为回文数.比如 121,2332 都是回文数,134567 不是回文数. 任意一个正整数,如果其不是回文数,将该数交换高低位以后和原数相加 ...
随机推荐
- Knockout快速扫盲
1.Knockout.js是什么? Knockout是一款很优秀的js库,它可以快速让你使用一个干净整洁的底层数据模型,即可创建一个富文本且具有良好显示和编辑功能的用户界面.任何时候你的ui需要自 ...
- VisualSVN Server安装后,TortoiseSVN远程无法访问版本库。
修正!重演了一遍,发现总结有误,重新整理下.首先访问版本库的路径不清楚的话可以在VisualSVN Server的版本库上右键“Copy URL to Clipboard”.访问版本库失败的几种情况: ...
- HtmlUnit+Jsoup 解决爬虫无法解析执行javascript的问题
本人最近在研究爬虫.作为一个新手.研究了些爬虫框架,发现所有开源的爬虫框架很多,功能也很齐全,但唯独遗憾的是,目前还没有发现那个爬虫对js完美的解释并执行.看了浅谈网络爬虫爬js动态加载网页(二)之后 ...
- jquery事件链式写法
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- Introduction to Json
什么是Json 是Javascript·对象的一种表示,属于轻量级数据,它比XMl小,快,易解析 作用: 用于存储和交换(转换)信息的语言,还可以将各种数据类型放在json中并进行数据传输 整理的章节 ...
- mongoDB用java实现增删改查
package mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mo ...
- (C)高级排序法
1.快速排序法 //方法1 从大到小 #include <iostream.h> void run(int* pData,int left,int right) { int i,j; in ...
- AOI自动光学检测机技术在电路板检查中的应用
1.简述 AOI技术在许多不同的制造业领域使用,自从电子影像技术开始发展,就被各种人利用在不同的应用领域.大家最熟悉的数字相机.数字摄影机是大家生活中最常用到的器材之一,而工业产品的生产也大量使用这些 ...
- fedora 设置命令别名
用命令 alias 举例: alias ggw="g++ -g -Wall" ggw 是自定义的别名,可根据需要进行修改设置,等于后面的则是别名的具体含义,在终端输入ggw就像当于 ...
- android面试题之二
六.android 中的动画有哪几种,它们的特点和区别是什么 ? 逐帧动画和补间动画. 逐帧动画:是传统的动画播放方式,指定每一帧的内容和停留时间,然后顺序地播放排列好的图片,类似电影. 补间动画:给 ...