首页 > 其他分享 >寻找符合回文数要求的数

寻找符合回文数要求的数

时间:2024-03-22 22:58:45浏览次数:33  
标签:11 输出 int 999 寻找 符合 格式 回文

一、题目要求

在11-999之间寻找一个数m,其中m的平方、m的立方均是回文数,依次输出他们 
输出格式 m 次数 对应的m  每输一个换一次行

Input example:

Output example:

m 2 -> 11
m 3 -> 11
m 2 -> 22
m 2 -> 26
m 2 -> 101
m 3 -> 101
m 2 -> 111
m 3 -> 111
m 2 -> 121
m 2 -> 202
m 2 -> 212
m 2 -> 264
m 2 -> 307
m 2 -> 836

二、题目分析

1)需求:

  在某范围内找出能够在特定情况下构成回文数的一些数,并按特定格式输出

2)思路:

1. 11-999范围内 --> 循环结构;

2. m的平方、m的立方 ---> power函数的利用 调用内置库 include<cmath> 中的pow(double x, double y) ;

3. 均是回文数 ---> 构建判断回文数的函数 is_Palindrome(int n);

4. 按 m 次数 m对应的数 特定格式输出 ---> 调用标准库std::cout按格式打印

3) 注意事项:

1. 每输出一条语句需要换行

2.注意输出格式

3. 代码实现

  此次代码实现,利用了函数模块化分装,各个部分相对比较清晰,小伙伴们若有需要某一部分代码,可快速定位查看,注释比较完整,代码如下:

/* 在11-999之间寻找一个数m,其中m的平方、m的立方均是回文数,依次输出他们 */
//输出格式 m 次数 对应的m  每输一个换一次行
#include<iostream>
#include<cmath>	//调用pow,判断j的1 2 3次幂是否为回文数
using namespace std;

int is_Palindrome(int num); //判断是否为回文数
void print_m();	//打印m

int main()
{
	print_m();
	return 0;
}

//判断回文数
int is_Palindrome(int num)
{
	//定义反位后的数m,判断反位的数与原数相同的标志flag,记录原数的数n
	int m = 0, flag = 0, n = num; 
	while (n)
	{
		//换出反过来后的数:剔出低位对应的数,并乘10进位成高位
		m = n % 10 + m * 10;	
		//便于从低位到高位依次得出位上的数
		n /= 10;
	}
	if (num == m)
		flag = 1;	
	//判断是否相同的标志,若相同则为1,反之为0
	return flag;
}
//遍历11-999,寻找符合要求的回文数并打印
void print_m()
{
	int i, Pal[1000], len = 0, pow2 = 1, pow3 = 1;
	for (i = 11; i < 1000; i++)
	{
		pow2 = pow(i, 2);
		pow3 = pow(i, 3);
		if (is_Palindrome(pow2))
		{
			cout << "m 2 -> " << i << endl;
		}
		if (is_Palindrome(pow3))
		{
			cout << "m 3 -> " << i << endl;
		}
	}
}

标签:11,输出,int,999,寻找,符合,格式,回文
From: https://blog.csdn.net/2301_79475128/article/details/136953621

相关文章

  • 【LeetCode-153.寻找旋转排序数组的最小值】
    已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums=[0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0],a[1],a[2],...,a[n-1......
  • LeetCodeHot100 二分查找 35. 搜索插入位置 74. 搜索二维矩阵 34. 在排序数组中查
    35.搜索插入位置https://leetcode.cn/problems/search-insert-position/description/?envType=study-plan-v2&envId=top-100-likedpublicintsearchInsert(int[]nums,inttarget){intleft=0;intright=nums.length-1;while(left<......
  • 非有序数组也能二分? —— 红蓝染色法续篇(Leetcode 162.寻找峰值)
    1.写在前面本文为个人学习总结,参考:B站Up:灵茶山艾府参考视频链接:https://www.bilibili.com/video/BV1QK411d76w/2.题目我们来看一下下面这道题:峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在......
  • lc1312 让字符串成为回文串的最少插入次数
    给定长为n的字符串s,每次操作可以在字符串的任意位置插入任意1个字符,如果要让s成为回文串,至少要操作多少次?1<=n<=500区间dp,记dp[i][j]表示让[i,j]区间成为回文串的最少操作次数,考虑s[i]与s[j]的相等关系进行转移。classSolution{public:intdp[505][505];intminIn......
  • lc1771 由子序列构造的最长回文串的长度
    给出两个字符串word1和word2,需要从word1和word2分别选出某个非空子序列s1和s2,要求连接s1与s2后得到回文串,求该回文串的最大长度。word1和word2长度在[1,1000]内。区间dp,将word1与word2拼接起来,转换成求单个字符串的的最长回文子序列问题,为了保证s1和s2非空,枚举word1和word2中每......
  • lc516 最长回文子序列
    给定长度为n的字符串s,求最长回文子序列的长度。1<=n<=1000区间dp,记dp[i][j]表示区间[i,j]能构成的最长回文串的长度,根据s[i]跟s[j]是否相等进行转移。classSolution{public:intdp[1005][1005];intlongestPalindromeSubseq(strings){intn=s.size()......
  • 125. 验证回文串c
    booljudge(charc){if(c>='a'&&c<='z'||c>='A'&&c<='Z'||c>='0'&&c<='9')returntrue;returnfalse;}boolisPalindrome(char*s){i......
  • 131. 分割回文串c
    /***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree().*/charc[30][30];booljudge(ch......
  • leedcode- 回文链表
    毫无创意的一版:#定义一个类SolutionclassSolution:#定义一个方法isPalindrome,用于检查链表是否为回文defisPalindrome(self,head:Optional[ListNode])->bool:#如果链表为空,则它是一个回文ifnothead:returnTrue......
  • 由版本不兼容问题引出的“pip 24.1 版本开始pip 将强制要求使用符合规范的依赖规范”
    故事的开始是……(其实是两个报错,一个是图中所示,一个是GPU问题)但是当我安装tensorboard出现了这种报错 查看报错,发现是版本问题 于是我尝试升级omegaconf版本,然后再次提醒版本问题这次不兼容的是fairseq和hydra-core,提示说这俩版本太高了 既然高那就降低版本,但是降低......