C++基础算法之 回文数

// 常见算法.cpp : 定义控制台应用程序的入口点。
//回文

#include "stdafx.h"
#include <iostream>
using namespace std;

void reverse_num(int& n)
{

	int rem     = 0;//用于表示余数
	int reverse = 0;//反转后的数字
	int temp    = 0;

	temp        = n;
	while (temp !=0)
	{
		rem			= temp%10;
		reverse		= reverse*10 + rem;
		temp	   /= 10;
	}
	if (reverse == n)
	{
		cout<<"回文数:"<<n<<endl;
	}
	else
	{
		cout<<"您输入的不是回文数"<<endl;
	}
}
int _tmain(int argc, _TCHAR* argv[])
{

	while (true)
	{
		cout<<"请您输入一个数字:"<<endl;
		int j;
		cin>>j;
		if (cin.fail())
		{
			cout<<"ERROR"<<endl;
			cin.clear();
			cin.sync();
		}
		try
		{
			reverse_num(j);
		}
		catch (...)
		{
			cout<<"ERROR!!";
		}
	}

	/************************************************************************/
	/* cin.fail() cin.clear() cin.sync(),后两个一般一起使用 相当一 cin.ingore()的效果                                                                     */
	/************************************************************************/

	/*
	int a;
	cin>>a;
	if (cin.fail())//验证输入的类型是否匹配,例如这里是int a;如果输入一个字符,就会报错
	{
		cin.clear(); //清除错误标志,重置流的状态
		cin.sync();//清楚缓存区
		int b;
		cin>>b; //如果不清除缓存区,这个b将不会被读入,因为每次都是从缓存区读取,不清除读取的还是原来的内容
		cout<<b<<endl;

	}
	*/

	/************************************************************************/
	/* cin 与cin.get()的区别:cin会自动忽略回车符号,cin.get()不会忽略                                                                     */
	/************************************************************************/
	//char k = cin.get();
	//cout<<k<<endl;
	//char m = cin.get();
	//cout<<m<<endl;
	//因为cin.get()不会自动忽略了回车符号,当我们输入第一个字符后,我们会输入一个回车符号,相当于m输入的就是回车符

	getchar();
	//getchar();
	return 0;
}

时间: 2024-10-05 21:54:05

C++基础算法之 回文数的相关文章

基础练习 特殊回文数

  基础练习 特殊回文数   时间限制:1.0s   内存限制:512.0MB 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行. 样例输入 52 样例输出 899998989989998899 数据规模和约定 1<=n<=54. import java.util.*; public c

蓝桥杯 基础练习 特殊回文数

基础练习 特殊回文数 时间限制:1.0s   内存限制:512.0MB 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行. 样例输入 52 样例输出 899998989989998899 数据规模和约定 1<=n<=54. #include<stdio.h> #include

算法训练 回文数

问题描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884 在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884. 写一个程序,给定一个N(2<=N<=10或N=1

PHP算法之回文数

判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: 从左向右读, 为 -121 . 从右向左读, 为 121- .因此它不是一个回文数.示例 3: 输入: 10输出: false解释: 从右向左读, 为 01 .因此它不是一个回文数.进阶: 你能不将整数转为字符串来解决这个问题吗? 来源:力扣(LeetCode) 1.这个转为字符串处理 class Solutio

算法之回文数判断

所谓回文字符 串就是指正读反读均相同的字符序列,如“席主席”.“记书记”.“aha”和“ahaha”均是回 文,但“ahah”不是回文. 通过栈这个数据结构我们将很容易判断一个字符串是否为回文. 1 // 4. 判断回文字符串 2 char a[9], s[9]; 3 int i, len, mid, next, top; 4 5 gets(a); // 读入一行字符串 6 // a = "qwerewq"; 7 len = strlen(a); 8 mid = len / 2 - 1

蓝桥杯基础练习--特殊回文数

问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行. 样例输入 52 样例输出 899998989989998899 数据规模和约定 1<=n<=54. #include<iostream> using namespace std; int main() { int arr[1

蓝桥 基础练习 特殊回文数

问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n .输入格式 输入一行,包含一个正整数n.输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行.样例输入52样例输出899998989989998899数据规模和约定 1<=n<=54. 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void

蓝桥杯- 基础练习:回文数

public class Main { public static void main(String[] args) { for (int i = 1000; i < 10000; i++) { if ((i/1000)==(i%10)&&(i/100%10)==(i/10%10)) { System.out.println(i); } } } } 原文地址:https://www.cnblogs.com/wzqjy/p/8280594.html

特殊回文数

基础练习 特殊回文数 时间限制:1.0s 内存限制:512.0MB 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行. 样例输入 52 样例输出 899998 989989 998899 数据规模和约定 1<=n<=54. #include<stdio.h> int main