第几个回文数的问题输入一个数n,输出第n个回文数(如1,2,3,4,5,6,7,8,9,11,22,101,505……)
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/07 12:33:44
第几个回文数的问题
输入一个数n,输出第n个回文数(如1,2,3,4,5,6,7,8,9,11,22,101,505……)
应该如何实现呢
eg
输入
12
24
输出
33
151
输入一个数n,输出第n个回文数(如1,2,3,4,5,6,7,8,9,11,22,101,505……)
应该如何实现呢
eg
输入
12
24
输出
33
151
上面二位的程序的算法负责度是O(n×n),如果输入80000,基本上就死掉了,
我下面的程序的算法负责度给输出结果的长度相关,例如输出 34566543 的复杂度就是O(8),俺的程序即使输入 很大的int也立马就给出结果,例如
输入:4567898
输出:
4567898
the NO.4567898 coprimer num is 3567899987653
#pragma warning(disable:4786)
#include
#include
using namespace std;
const char *num1[] = {"0","1","2","3","4","5","6","7","8","9"};
string getCoprimerNum(int no)
{
int num = 9; //not include 0
int num2 = 10; //include 0
int size = 1;
int times = 0;
while(true)
{
if(no 2)
{
num /= 10;
int data = no/num;
no = no - data*num;
string str3;
if(zero) str3 += num1[data];
else
{
str3 += num1[data+1];
zero = true;
}
str += str3;
str3 += str2;
str2 = str3;
size -= 2;
}
string str3;
if(zero) str3 += num1[no];
else str3 += num1[no+1];
if(size == 1)
{
str += str3;
str += str2;
}
else
{
str += str3;
str += str3;
str += str2;
}
return str;
}
int main()
{
int no;
cin>>no;
while(no > 0)
{
cout
我下面的程序的算法负责度给输出结果的长度相关,例如输出 34566543 的复杂度就是O(8),俺的程序即使输入 很大的int也立马就给出结果,例如
输入:4567898
输出:
4567898
the NO.4567898 coprimer num is 3567899987653
#pragma warning(disable:4786)
#include
#include
using namespace std;
const char *num1[] = {"0","1","2","3","4","5","6","7","8","9"};
string getCoprimerNum(int no)
{
int num = 9; //not include 0
int num2 = 10; //include 0
int size = 1;
int times = 0;
while(true)
{
if(no 2)
{
num /= 10;
int data = no/num;
no = no - data*num;
string str3;
if(zero) str3 += num1[data];
else
{
str3 += num1[data+1];
zero = true;
}
str += str3;
str3 += str2;
str2 = str3;
size -= 2;
}
string str3;
if(zero) str3 += num1[no];
else str3 += num1[no+1];
if(size == 1)
{
str += str3;
str += str2;
}
else
{
str += str3;
str += str3;
str += str2;
}
return str;
}
int main()
{
int no;
cin>>no;
while(no > 0)
{
cout
第几个回文数的问题输入一个数n,输出第n个回文数(如1,2,3,4,5,6,7,8,9,11,22,101,505……)
C语言输入一个数n,输出n以内所有的回文素数.回文素数,即是素数,又是回文数
1) 打印200~999之间的回文数,每9个一行.回文数是指正读与反读都一样的数,如:121,979等
设计一个算法,判断一个正的n(n>2)位数是不是回文数(回文数是指从左到右读与从右到左读都是一样的正整数,如121,94
回文数(回文数)
PASCAL将1,2,3,4,5,6,7,8,9组成一个三位数,必须是素数,回文数
五位数的回文数有多少个
1、设计一个算法,判断一个正的n(n>2)位数是不是回文数,用自然语言描述算法的步骤.(回文数是指从左到右读和从右到左读
1、能被9整除的四位回文数有多少个 2、五位数中,百位是0的回文数有多少个 偶数回文数有多少个
回文数的C#问题.
C++判断回文数程序填空:回文数(如12321),通过函数调用,求出1000~2000之间的数kn,它满足n与n2都是回
像33、121、36563这样的数叫做:“回文数”,在10~100中,共有()个回文数?