C语言回慕课回文数,合工大OJ 1331 回文数

Description

一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。

任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。

例如:

68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数。

于是有数学家提出一个猜想:

不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。至今为止还不知道这个猜想是对还是错。

现在请你编程序验证之。

Input

每行一个正整数。

Output

对应每个输入,输出一行为变换的过程。

Sample Input

27228

37649

Sample Output

27228--->109500--->115401--->219912

37649--->132322--->355553

Hint

1.输入的数据保证小于2^60

2.每组数据保证最多运算100次

友情提示:WA的同学请仔细阅读提示1和提示2

简单题解:看到提示,就直接用字符串处理大数加法,直接AC

#include

#include

using namespace std;

bool ishuiwen(string s)

{

for(int i=;i

{

if(s[i]!=s[s.length()--i])

return ;

}

return ;

}

string Add(string s)

{

string sum,x;

for(int i=;i

x[i]=s[s.length()-i-];

int len=s.length();

int *a=new int[len+];

a[]=;

int d=;

for(int i=s.length();i>=;i--)//从最低位开始计算两个数各位的和,保存到结果数组

a[i]=s[i-]+x[i-]-''-'';//a[1]为计算后结果的最高位,进位情况还未处理

for(int i=s.length();i>=;i--)//处理进位情况

{

a[i]+=d;//本位加上上一位的进位

if(a[i]>=)//当该位大于等于10时,只保留该位的个位 ,向下一位的进位d为十位

{

d=a[i]/;

a[i]%=;

}

else if(a[i]

d=;

}

if(a[]>)

for(int i=;i

sum+=a[i]+'';

else

for(int i=;i

sum+=a[i+]+'';

return sum;

}

int main()

{

string s;

while(cin>>s)

{

cout<

while(!ishuiwen(s))

{

s=Add(s);

cout<"<

}

cout<

}

return ;

}

每日一道 LeetCode &lpar;3&rpar;:回文数

前文合集 每日一道 LeetCode 文章合集 题目:回文数 题目来源:https://leetcode-cn.com/problems/palindrome-number/ 判断一个整数是否是回文数 ...

&lbrack;Swust OJ 797&rsqb;--Palindromic Squares&lpar;回文数水题&rpar;

题目链接:http://acm.swust.edu.cn/problem/797/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

LeetCode OJ Palindrome Number(回文数)

class Solution { public: bool isPalindrome(int x) { ,init=x; ) return true; ) return false; ){ r=r*+ ...

POJ2402 Palindrome Numbers 回文数

题目链接: http://poj.org/problem?id=2402 题目大意就是让你找到第n个回文数是什么. 第一个思路当然是一个一个地构造回文数直到找到第n个回文数为止(也许大部分人一开始都是 ...

&lbrack;LeetCode&rsqb; Prime Palindrome 质数回文数

Find the smallest prime palindrome greater than or equal to N. Recall that a number is prime if it's ...

寻找并输出11~999之间的回文数m

寻找并输出11~999之间的数m,它满足m.m2和m3均为回文数. 回文:各位数字左右对称的整数. 例如:11满足上述条件 112=121,113=1331 判断一个数是否是回文数的方法:求该数的反序 ...

&lbrack;LeetCode&rsqb; 906&period; Super Palindromes 超级回文数

Let's say a positive integer is a superpalindrome if it is a palindrome, and it is also the square o ...

Leetcode(9)-回文数

判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...

hdu1282回文数猜想

Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...

随机推荐

ThinkPHP&plus;Smarty模板中截取包含中英文混合的字符串乱码的解决方案

好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

数论 UVA 11076

这道题目的意思简单易懂说的是给你n个数(可能有重复相同的数字),列出他们所有排列的情况,再逐位相加,求出和,例如:给你1,2,3,则排列的情况为<123>, <132>, &l ...

CMDLINE的解析

在linux的config文件中有一个特殊的宏定义CMDLINE,以前也一直在使用这个宏的参数,但是真正这个宏的解析和使用却不怎么明确.这次有机会多对它有些了解,不妨把这个浅显的认识说出来,记下来. ...

炮塔郝梦主solo

尊重开发人员的工作,转载时请注明出处:http://blog.csdn.net/haomengzhu/article/details/31885287 或许你会由于它爱上dota: 或许你会由于它爱上 ...

单例--iOS

GCD单例: static ModulesManager * sharedManager = nil; + (id)sharedInstance { static dispatch_once_t on ...

PLSQL Developer连接远程数据库的配置

去Oracle的安装目录找到:D:\oracle\NETWORK\ADMIN这个路径下面的tnsnames.ora文件 修改文件: 这个是本地的 ORCL = (DESCRIPTION = (ADDR ...

HTTP协议扫盲(三)HTTP协议的请求头列表和分类描述

一.请求报头和响应报头列表 1.Requests 头列表 Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept ...

Python——面向对象的特性

1.继承 定义:继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 class A:pass #父类,基类,超类 class ...

Codeforces 1080C- Masha and two friends

AC代码 #include #define ll long long const int maxn=1e6+10; using namespace std; ...

webrtc 实时视频 &period;net websocket信令服务器

这篇文章主要参考了 Webrtc WebSocket实现音视频通讯,非常感谢提供代码 前端部分完全是从这篇文章复制过来的,只是修改了webscket的url,还有加入了webrtc-adapterjs ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值