1155:回文三位数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 30340 通过数: 19971【题目描述】
如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。
【输入】
(无)
【输出】
所有的既是回文数又是素数的三位数。一个数一行。
【输入样例】
(无)
【输出样例】
(无)
知识补充:
知识点1:ASCII 码
补充1
b[0]=a[0]-'0';//这个可以从字符型转换为整数型
代码:
#include<iostream>
#include<cstring>
using namespace std;
int chartoint(char str);
int reverse(int number1);
int pure(int number1);
int main()
{
// int number=0;
// int number3=0;
for(int i=100;i<1000;i++)
{
if(i==reverse(i)&&pure(i)==1)
{
cout<<i<<endl;
}
}
return 0;
}
int reverse(int number1)
{
int b,s,g;
b=number1/100;
s=number1/10%10;
g=number1%10;
return (g*100+s*10+b);
}
int pure(int number1)
{
for(int i=2;i<number1;i++)
{
if(number1%i==0)
{
return 0;//0
}
}
return 1;
}
随手写的程序
输入三个数判断是否是回文数
#include<iostream> #include<cstring> using namespace std; int chartoint(char str); int main() { char a[3]={0}; cin>>a; int len=0; len=strlen(a); //cout<<a[0]; int b[3]={0}; int c[3]={0}; for(int i=0;i<len;i++)//0 1 2 3//转换为数字类型 { b[i]=chartoint(a[i]); //cout<<b[i]<<endl; } for(int i=2,j=0;i>=0;i--,j++)//0 1 2 3//转换为数字类型 { c[i]=b[j]; // cout<<c[j]<<endl; } for(int i=2;i>=0;i--)//0 1 2 3//转换为数字类型 { if(c[i]!=b[i]) { cout<<"不是回文数"<<endl; break; } if(i==0) { cout<<"是回文数字"<<endl; //cout<<b; //数组没有办法直接这么打印。 } } //cout<<len; return 0; } //int reverse(int ) int chartoint(char str) { int number; number=str-'0'; // cout<<number<<endl; return number; } //int reverse(int str) //{ // int number; // number=str-'0'; // return number; //}