问题描述
一个正整数,如果交换高低位以后和原数相等,那么称这个数为回文数。比如 121,2332 都是回文数,134567 不是回文数。

任意一个正整数,如果其不是回文数,将该数交换高低位以后和原数相加得到一个新的数,如果新数不是回文数,重复这个变换,直到得到一个回文数为止。例如,57 变换后得到 132(57 + 75),132 得到 363(132 + 231),363 是一个回文数。

曾经有数学家猜想:对于任意正整数,经过有限次上述变换以后,一定能得出一个回文数。至今这个猜想还没有被证明是对的。现在请你通过程序来验证。
输入格式
输入一行一个正整数 n。
输出格式
输出第一行一个正整数,表示得到一个回文数的最少变换次数。
接下来一行,输出变换过程,相邻的数之间用”—>”连接。输出格式可以参见样例。
保证最后生成的数在 int 范围内。
样例输入
349
样例输出
3
349—>1292—>4213—>7337

首先了解vector与assert的用法:

vector的用法:https://www.cnblogs.com/Nonono-nw/p/3462183.html
assert的用法:https://blog.csdn.net/laobai1015/article/details/53840985

代码:

#include <iostream>
#include <vector>
#include <assert.h> using namespace std; vector<int> ans;
int rev(int x) {
int res = ;
while (x) {
res = res * + x % ;
x /= ;
}
return res;
}
int main() {
int n;
while (cin >> n) {
ans.clear();
ans.push_back(n);//像迭代器中放入第一个数n;
int temp = rev(n);
while (temp != n) {
n += temp;
ans.push_back(n);
temp = rev(n);
assert(n > );//断言,相当于条件判断语句,如果语句返回错误,则终止程序执行
}
//ans.size()指当前容器所存储的元素个数,即已经经过多少次变换并且将变换后的数字存到容器里面
cout << ans.size() - << endl;
cout << ans[];
for (int i = ; i < ans.size(); ++i) {
cout << "--->" << ans[i];
}
cout << endl;
}
return ;
}

回文数(vector的使用)的更多相关文章

  1. lintcode491 回文数

    回文数 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 注意事项 给的数一定保证是32位正整数,但是反转之后的数就未必了. 您在真实的面试中是否遇到过这个题? ...

  2. 4190. Prime Palindromes 一亿以内的质数回文数

    Description The number 151 is a prime palindrome because it is both a prime number and a palindrome ...

  3. tmp_获取下一个回文数

    直接拿之前一次竞赛中写的code,稍微完善了点,后面有机会在优化 uint64_t GetNextPalindrome(uint64_t data) { //100以内的数字已经特殊考虑过,不存在差值 ...

  4. hdu1282回文数猜想

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

  5. C语言 · 特殊回文数

    问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输 ...

  6. Java判断回文数算法简单实现

    好久没写java的代码了, 今天闲来无事写段java的代码,算是为新的一年磨磨刀,开个头,算法是Java判断回文数算法简单实现,基本思想是利用字符串对应位置比较,如果所有可能位置都满足要求,则输入的是 ...

  7. luogu1207双重回文数[usaco1.2]Dual Palindromes

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上 ...

  8. luogu10125回文数[noip1999 Day1 T1]

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  9. 洛谷 P1015 回文数 Label:续命模拟QAQ

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

随机推荐

  1. 如何运用jieba库分词

    使用jieba库分词 一.什么是jieba库 1.jieba库概述 jieba是优秀的中文分词第三方库,中文文本需要通过分词获得单个词语. 2.jieba库的使用:(jieba库支持3种分词模式) 通 ...

  2. shell 生成任意大小文件

    $ dd if=/dev/zero of=junk.data bs=1M count=1 参数: if  (input file) of (output file) bs(block size) co ...

  3. PaginatorSet

    from django.core.paginator import Paginator, EmptyPage class PaginatorSet: def __init__(self, limit= ...

  4. JS“盒子模型”

    列举几个常用的属性 client系列 clientWidth - 盒子真实内容的宽度[content+padding左右],不包括边线和滚动条 clientHeight - 盒子真实内容的高度[con ...

  5. GDB程序调试工具

    GDB程序调试工具 GDB主要完成下面三个方面的功能: 启动被调试程序 让被调试程序在指定的位置停住 当程序被停住时,可以检查程序状态 GDB快速入门 编译生成可执行文件 gcc -g test.c ...

  6. C#匿名对象(转JSON)

    多类型匿名对象 var result = new { pages = , users = new System.Collections.ArrayList { ,name="}, ,name ...

  7. Fatal error encountered during command execution

    MySQL + .net + EF 开发环境,调用一处sql语句报错: Fatal error encountered during command execution[sql] view plain ...

  8. 基于Python的Webservice开发(三)-Django安装配置

    一.安装Django pip install django 二.创建项目 进入指定的目录后 django-admin startproject WebApi 目录说明: WebApi 项目的容器. m ...

  9. Python爬虫从入门到进阶(3)之requests的使用

    快速上手(官网地址:http://www.python-requests.org/en/master/user/quickstart/) 发送请求 首先导入Requests模块 import requ ...

  10. MDX Query - mdx的基本语法和概念

    文档: https://wenku.baidu.com/view/ef14b0e1900ef12d2af90242a8956bec0975a5e7.html?rec_flag=default http ...