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 不是回文数. 任意一个正整数,如果其不是回文数,将该数交换高低位以后和原数相加 ...
随机推荐
- pre标签 首行会自动换行解决方案
利用pre标签可以 解决文本文档里面的空格及换行在页面上不显示的方案, 自行换行 加 white-space: pre-wrap; word-wrap: break-word; 英文字母换行 word ...
- 五毛的cocos2d-x学习笔记03-控件
VS2013快捷键:注释,Ctrl+K+C:取消注释Ctrl+K+U.都是单行.要实现多行注释与取消注释,就选中多行.run方法调用了AppDelegate的applicationDidFinishL ...
- Spring学习之杂七杂八
源码解读Spring IOC原理 - http://www.cnblogs.com/ITtangtang/p/3978349.html 1. 使用Groovy配置Bean http://blog.cs ...
- WCF跟踪分析 使用(SvcTraceViewer)
1.首先在WCF服务端配置文件中配置两处,用于记录WCF调用记录! A:<system.serviceModel>目录下: <diagnostics> <mes ...
- How do I Find Out Linux CPU Utilization?
From:http://www.cyberciti.biz/tips/how-do-i-find-out-linux-cpu-utilization.html Whenever a Linux sys ...
- Nginx Rewrite规则初探(转)
Nginx rewrite(nginx url地址重写)Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Ng ...
- Linux android studio :'tools.jar' seems to be not in Android Studio classpath.
问题: 'tools.jar' seems to be not in Android Studio classpath.Please ensure JAVA_HOME points to JDK ra ...
- CodeForces - 27E--Number With The Given Amount Of Divisors(反素数)
CodeForces - 27E Number With The Given Amount Of Divisors Submit Status Description Given the number ...
- 怎么在Ubuntu Scope中获取location地址信息
Location信息对非常多有地址进行搜索的应用来说非常重要.比方对dianping这种应用来说.我们能够通过地址来获取当前位置的一些信息.在这篇文章中,我们来介绍怎样获取Scope架构中的位置信息. ...
- iOS7支持九宫格
Beta4支持九宫格 还没试,等最终版把,现在的有很多bug还比较费电 看网上有人说虽然终于出来了但是还是不如百度搜狗等输入法方便 前几个月在weiphone上还有人问支不支持结果回帖的都说没戏 这算 ...