1.判断回文数
#include<iostream>
using namespace std;
int main() {
int ar[100],n,ar2[100],y=1;
cin>>n;
for(int i=0;i<n;i++){
cin>>ar[i];
}
for(int i=0;i<n;i++){
ar2[i]=ar[n-i-1];
}
for(int i=0;i<n;i++){
if(ar[i]!=ar2[i]){
y=0;
break;
}
}
if(y==1){
cout<<"Yes";
}else{
cout<<"No";
}
return 0;
}
另一种算法,直接对称比较:
#include<iostream>
using namespace std;
int main() {
int ar[100],n,y=1;
cin>>n;
for(int i=0;i<n;i++){
cin>>ar[i];
}
for(int i=0;i<n/2;i++){
if(ar[i]!=ar[n-i-1]){
y=0;
break;
}
}
if(y==1){
cout<<"Yes";
}else{
cout<<"No";
}
return 0;
}
2.排队接水:
#include<iostream>
using namespace std;
int main() {
int n, m, N[100], l = 0, s = 0;
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> N[i];
}
int M[m];
for (int i = 0; i < m; i++) {
M[i] = N[i];
}
l = M[0];
for (int i = m; i < n; i++) {
for (int j = 1; j < m; j++) {
if (M[j] < l) {
l = M[j];
s = j;
}
}
M[s] += N[i];
}
l = M[0];
for (int j = 1; j < m; j++) {
if (M[j] > l) {
l = M[j];
}
}
cout<<l;
return 0;
}