1
已解决
张恩泽
高级天翼
高级天翼
5422 A + B = C 经验值:800
题目描述 Description
给定 n 个数 ai,以及一个正整数 c ,问有多少对 ai 和 aj,满足 ai + aj = c ,如果没有满足条件的ai与aj,则输出“No”。
输入描述 Input Description
第一行,输入正整数n和c;
接下来n行,输入n个正整数。
输出描述 Output Description
输出n个正整数中两数之和等于c的有多少对;如果不存在两数之和等于c,则输出“No”。
样例输入 Sample Input
5 6 1 2 3 4 5
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
n<=1000;
ai和aj要互不相同,另外,就算等式ai+aj=c 和 aj+ai=c 都成立,ai与aj也只能算作一对数,例如:虽然等式 1+2=3 和 2+1=3 都成立,但是1和2只能算作一对数字,不能算作两对。
//CODE
//#pragma GCC optimize(3)
//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
using namespace std;
int n, c, a[1005], cnt;
int main() {
// freopen ("题目名.in", "r", stdin);
// freopen ("题目名.out", "w", stdout);
cin >> n >> c;
for (int i = 1; i <= n; i ++) {
cin >> a[i];
}
for (int i = 1; i <= n; i ++) {
for (int j = i + 1; j <= n; j ++) {
if (a[i] + a[j] == c) {
cnt ++;
}
}
}
cout << cnt;
// fclose (stdin);
// fclose (stdout);
return 0;//好习惯!
}
为什么90分,求各位大佬找错!!
0
0
0
高子健
新手天翼
新手天翼
如果不存在两数之和等于c,则输出“No”
请仔细阅读题目
只要改一下
bool f=0||f=1;
if (a[i] + a[j] == c) {
cnt ++;
f=1||f=0//看你的代码来决定
}
if(f==1||f==0)//看代码 如果f==初值
cou<<"No"
0
0
0