请问代码有什么问题
本帖最后由 嘉岳呀 于 2022-2-24 18:31 编辑题目:
http://noi.openjudge.cn/ch0111/07/
代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int a;
int main()
{
int n;
long long m;
int temp;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
temp=max(temp,a);
}
cin>>m;
long long l=1,r=n+1;
sort(a+1,a+n);
while(l<r)
{
long long mid;
mid=(l+r)/2;
if(l+r<m)
{
r=mid;
}
else if(l+r<m)
{
l=mid;
}
else
{
cout<<l<<' '<<r<<endl;
return 0;
}
}
cout<<"No"<<endl;
return 0;
}
请问代码有什么问题? @人造人 @Twilight6 @jackz007 你的代码最后输出 "No" 表示不管怎样,答案都是 "No" 傻眼貓咪 发表于 2021-12-7 19:54
你的代码最后输出 "No" 表示不管怎样,答案都是 "No"
while里面如果有的话就会 return 了 嘉岳呀 发表于 2021-12-7 20:15
while里面如果有的话就会 return 了
你最后这个选取两数之和写的不好 嘉岳呀 发表于 2021-12-7 20:15
while里面如果有的话就会 return 了
看了你的题目,写了代码:#include <iostream>
#include <algorithm>
int main()
{
int n, m;
bool flag = true;
std::cin >> n;
int arr;
for(int i = 0; i < n; i++) std::cin >> arr;
std::cin >> m;
if(n > 1) std::sort(arr, arr+n);
for(int L = 0, R = n-1; L < R && n > 1;){
if(arr+arr > m) R--;
if(arr+arr < m) L++;
if(arr+arr == m){
std::cout << arr << " " << arr << std::endl;
flag = false;
break;
}
}
if(flag || n < 2) std::cout << "No" << std::endl;
return 0;
} 你给的连接,更本没有 C++ 可以提交啊? 本帖最后由 jackz007 于 2021-12-7 22:59 编辑
#include <stdio.h>
int main(void)
{
int a , c , d , e , i , j , n , m ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) scanf("%d" , & d) ;
scanf("%d" , & m) ;
for(c = i = 0 ; i < n - 1 ; i ++) {
for(j = i + 1 ; j < n ; j ++) {
if(d + d == m) {
a = (d < d) ? d : d ;
if(! c || (c && a < e)) e = a ;
c ++ ;
}
}
}
if(c) printf("%d%d\n" , e , m - e) ;
else printf("No\n") ;
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
4
2 5 1 4
6
15
D:\00.Excise\C> 傻眼貓咪 发表于 2021-12-7 20:39
你给的连接,更本没有 C++ 可以提交啊?
G++就是 嘉岳呀 发表于 2021-12-10 18:47
G++就是
是啊,才看到在最上面{:5_99:}
页:
[1]