int 类型范围 -2147483648~2147483647 一共10位最高位不超过2,负数比正数多一个负0当做负数最小值。 四位回文数 五位回文数

// 字符串方式判断回文数
#include<bits/stdc++.h>
using namespace std;
int main(){
	string s;
	cin>>s;
	for(int i=0,j=s.length()-1;i<=j;i++,j--){
		if(s[i]!=s[j]){
			cout<<"no";
			return 0;
		}
	}
	cout<<"yes";
	return 0;
}

回文串

#include<bits/stdc++.h>
using namespace std;
bool huiwen(string s){ // 字符串判断回文 
	for(int i=0,j=s.length()-1;i<=j;i++,j--){
		if(s[i]!=s[j]){
			return 0;
		}
	}
	return 1;
}
int main(){
	string s;
	cin>>s;
	if(huiwen(s)) cout<<"yes";
	else cout<<"no";
	
	return 0;
}

回文质数

//回文质数
#include<bits/stdc++.h>
using namespace std;
bool prime(int num){
	/*
		if(num==1) return 0;
		for(int i=2;i*i<=num;i++){
			if(num%i==0)return 0;
		}
		return 1;
	*/
	if(num==1) return 0;
	for(int i=2;i*i<=num;i++){
		if(num%i==0)return 0;
	}
	return 1;
} 
bool huiwen(int num){ // 数字判断回文 
	int t=num,sum=0;
	while(num>0){// 此处,若更为while(num),则会超时,打开O2优化
		sum=sum*10+num%10;
		num/=10;
	}
	if(t==sum){
		return true;
	}
	return false;
	
} 
int main(){
	int a,b;
	cin>>a>>b;
	for(int i=a;i<=b;i++){
		if(huiwen(i)){
			if(prime(i))
				cout<<i<<endl;
		}
	}
	
	
	return 0;
}

作业:

/*
输入一个5行5列的二维数组,
然后输入x行,每行两个数表示数组中的某一个位置,
输出x行,每行一个整数,表示每一个位置所在行和列的所有元素之和。
注意:本题下标从1开始,(1,2) 表示第一行第二个。

时间限制:1000ms
内存限制:128MB
样例组

输入#1
10 12 14 16 17
21 32 18 91 65
19 21 43 54 87
11 24 32 43 53
20 30 10 18 60
3
1 2
2 3
3 4
输出#1
176
326
392
*/ 

#include<bits/stdc++.h>
using namespace std;
int main(){
	int num[6][6],n,x,y;
	for(int i=1;i<=5;i++){
		for(int j=1;j<=5;j++){
			cin>>num[i][j];
		}
	}
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x>>y;//num[x][y]
		int s=0;
		for(int j=1;j<=5;j++){
			s+=num[x][j];// x这一行
			s+=num[j][y]; // y这 一列  
		}
		s-=num[x][y];
		cout<<s<<endl; //换一行 
	}
	return 0;
}

/*
给定一个5×5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。

例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。

11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25


时间限制:1000ms
内存限制:128MB
输入格式
输入包含一个5行5列的矩阵。

输出格式
如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"。

样例组
输入#1
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25
输出#1
4 1 8

*/
#include<bits/stdc++.h>
using namespace std;
int num[6][6],n,x,y;
bool andian(int x,int y){
	int m1=num[x][y],m2=num[x][y];
	for(int i=1;i<=5;i++){
		m1=max(num[x][i] , m1);// 打擂台找x行最大 
		m2=min(num[i][y] , m2);// 找y行最小 
	}
	return m1==num[x][y] && m2==num[x][y];
}
int main(){
	for(int i=1;i<=5;i++){
		for(int j=1;j<=5;j++){
			cin>>num[i][j];
		}
	}
	int cnt=0;
	for(int i=1;i<=5;i++){
		for(int j=1;j<=5;j++){
			if(andian(i,j)){
				cout<<i<<" "<<j<<" "<<num[i][j]<<" "; 
				cnt++;
			}
		}
	}
	if(cnt==0) cout<<"not found";
	
	
	return 0;
}