#include <bits/stdc++.h>
#define N 105
using namespace std;
int a[N], n;
int main() {
cin>>n;
int num=0;
int result[n];
for (int i =0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++)
{
for (int j=0;j<n;j++){
for(int k=j+1;k<n;k++){
if( (i!=j)&(j!=k)){
if(a[i]==a[j]+a[k]){
num+=1;
}
}
}
}
}
cout<<num;
return 0;
}
#include <bits/stdc++.h>
#define N 105
using namespace std;
int a[N], n;
bool check(int i) {
for (int j = 0; j < n; ++j)
for (int k = j + 1; k < n; ++k)
if (a[j] + a[k] == a[i]) return true;
return false;
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%d", &a[i]);
int sum = 0;
for (int i = 0; i < n; ++i)
if (check(i)) ++sum; // 也可以是 sum += check(i)
printf("%d\n", sum);
return 0;
}
2排列枚举问题
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std ;
int main(){
int a,b,c;
cin>>a>>b>>c;
int arr[10]={1,2,3,4,5,6,7,8,9,10};
bool check=false;
do{
int num1=arr[0]*100+arr[1]*10+arr[2];
int num2=arr[3]*100+arr[4]*10+arr[5];
int num3=arr[6]*100+arr[7]*10+arr[8];
if (a*num2==b*num1&&c*num2==b*num3){
cout<<num1<<" "<<num2<<" "<<num3<<endl;
check=true;
}
}while(next_permutation(arr,arr+9));
if(!check){
cout<<"No!!!"<<endl;
}
return 0 ;
}
冒泡排序和选择排序有什么区别??
插入排序怎么理解
不是很理解,还是不行
#include <bits/stdc++.h>
using namespace std;
int main() {
// 请补全代码,实现题目功能
int n;
cin>>n;
int a[n];
for (int i=1;i<=n;i++){
cin>>a[i];
}
for (int i=2;i<=n;i++){
int j;int x=a[i];
for(j=i;j>1&a[j-1]>a[j];j--){
a[j]=a[j-1];
}
// a[j]=x;
}
sort(a+1,a+n+1);
for (int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}