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; //}