回文寻找
来源:互联网 发布:零基础学算法第一章 编辑:程序博客网 时间:2024/05/22 03:52
题目:寻找一个大于10的最小正整数,使其本身、二进制转化值、八进制转化值,都是回文
暴力解法:
#include <iostream>#include <cstring>#include <sstream>using namespace std;string conv(int N, int jinzhi);template<class T> string to_string(const T& t);int judgeHW(string input);int main(){ int m = 11; int i; while(m > 10){ i ++; string shijinzhi = to_string(m); string twojinzhi = conv(m,2); string eightjinzhi = conv(m,8); if(judgeHW(tenjinzhi) && judgeHW(twojinzhi) && judgeHW(eightjinzhi)){ cout << "循环了 " << i << "次,找到 " << m << endl; cout << "3种进制下的数字分别为:" ; cout << tenjinzhi << " " << twojinzhi << " " << eightjinzhi << endl; break; } m ++; } return 0;}//将N转化为jinzhi进制为string conv(int N, int jinzhi){ string output; while(N > 0){ int yushu = N % jinzhi; N = N/jinzhi; output = to_string(yushu) + output; } return output;}template<class T> string to_string(const T& t){ ostringstream os; os << t; return os.str();}int judgeHW(string input){ int flag = 1; int i = 0; int j = input.length() - 1; while(i <= j){ if(input[i] == input[j]){ i += 1; j -= 1; continue; }else{ flag = 0; break; } } return flag;}
多动一下脑,如果一个数字转化为二进制以后是回文,那么个位数一定是1,因为如果是0则要求首位也是0,不合理。故而该数一定是一个奇数。那么在上述循环遍历时,只判断奇数即可。
阅读全文
1 0
- 回文寻找
- 寻找最小回文数
- 寻找回文字符串
- 寻找最大回文
- 寻找最长回文字符串
- 寻找最长回文子串
- 寻找最大的回文字符串
- 寻找最长回文子串
- 寻找最大回文字符串(python)
- 寻找最大回文数(未完待续)
- 寻找输入的回文字符串并输出!!
- 寻找回文数的python的实现
- leetcode题目 寻找最长回文字串
- manacher算法(寻找最长回文)
- 336. Palindrome Pairs 寻找回文对
- python实现寻找最长回文子序列
- 寻找最长回文子串 Longest Palindrome DP解法
- 【算法】寻找字符串中最长的回文序列
- 2.Android灯光系统_编写HAL_lights.c
- java异常简介及架构
- SpringBoot_restful
- 数据库基础知识
- VideoView视频大小屏切换/缓冲/卡顿监听和处理
- 回文寻找
- 基于docker的codis3部署
- leetcode
- 《笨办法学python》加分习题7——我的答案
- 基本数据类型
- Windows下MySql错误代码1045的解决方法
- 发现一个好玩的网页
- Mac 忘记root密码解决方法--Star.hou
- 2017年8月9日 星期三