A1:
#include <iostream>
using namespace std;
bool isSushu(int a){
for(int i=2;i<a;i++)if(a%i==0)return 0;
return 1;
}
int main(){
int n;
cout<<"Please input the number:"<<endl;
cin>>n;
for(int i=n;i>0;i--){
if(isSushu(i)&&isSushu(i-2)){
cout<<i<<" "<<i-2<<endl;
break;
}
}
return 1;
}
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
A2:
#include <iostream>
#include <string>
using namespace std;
#define max 100
int k;//用以标记初始化到多少
void roundf(int A[max][max],int a,int b){
int i,j;
i=a;
j=a;
for(j=a;j<b;j++){
A[i][j]=k;
k++;
}
for(i=a+1;i<b;i++){
A[i][j-1]=k;
k++;
}
for(j=b-2;j>=a;j--){
A[i-1][j]=k;
k++;
}
for(i=b-2;i>a;i--){
A[i][j+1]=k;
k++;
}
}
int main(){
int A[max][max];
int n;
cout<<"input the number:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
A[i][j]=-1;
int a=0;
k=1;
while(k<=n*n){
roundf(A,a,n-a);
a++;
}
for(int i=0;i<n;i++){
cout<<endl;
for(int j=0;j<n;j++)
printf("%3d",A[i][j]);
}
return 1;
}
A3:
#include <iostream>
#include <string>
using namespace std;
#define max 1000
bool equal(char a,char b){
if(a==b||int(a)-int(b)==32||int(b)-int(a)==32)return 1;
return 0;
}//判断两个字符是否相等,不区分大小写
bool isZf(char a){
if((int(a)>=48&&int(a)<=57)||(int(a)>=65&&int(a)<=90)||(int(a)>=97&&int(a)<=122))return 1;
return 0;
}//判断字符是否是字母或数字
bool huiwen(string A,int a,int b){
int i=a,j=b;
while(i<=j){
if(isZf(A[i])&&isZf(A[j])){
if(equal(A[i],A[j])){i++;j--;}
else return 0;
}
else if(isZf(int(A[i]))==0)i++;
else j--;
}
return 1;
}//判断字符串是否为回文字符串
int main(){
string A;
cout<<"input the string:";
cin>>A;
int len=A.length();
int maxlen=0;
int s,e;
for(int i=0;i<len;i++)
for(int j=len-1;j>i;j--)
if((huiwen(A,i,j))&&(j-i+1>maxlen)){
maxlen=j-i+1;
s=i;
e=j;
}
cout<<"The length of the longest huiwen substring is:"<<maxlen<<endl;
cout<<"The substring:"<<endl;
for(int i=s;i<=e;i++)cout<<A[i];
return 1;
}