import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String arg[]){
Scanner sc = new Scanner(System.in);
int szcount = sc.nextInt();
int result[] = new int[szcount];
for(int j=0;j<szcount;j++){
int szlength = sc.nextInt();
int [] sz = new int [szlength];
for(int i=0;i<szlength;i++){
sz[i]=sc.nextInt();
}
result[j]=Main.getcount(sz);
}
for(int r:result)
System.out.println(r);
}
public static boolean contains(int num,int[] nums,int offset){
for(int i=0;i<offset;i++){
if(num==nums[i])return true;
}
return false;
}
public static int getcount(int[] array){
Arrays.sort(array);
int count = 0;
for(int i =array.length-1;i>=0;i--){
for(int j =i;j>=0;j--){
if(contains(array[i]-array[j], array,j)){
count++;
}
}
}
return count;
}
}以上代码我本机调试都可以啊。怎么有道就说我有错误呢,他们输入 输入测试数据的。
import java.util.Scanner;
public class Main {
public static void main(String arg[]){
Scanner sc = new Scanner(System.in);
int szcount = sc.nextInt();
int result[] = new int[szcount];
for(int j=0;j<szcount;j++){
int szlength = sc.nextInt();
int [] sz = new int [szlength];
for(int i=0;i<szlength;i++){
sz[i]=sc.nextInt();
}
result[j]=Main.getcount(sz);
}
for(int r:result)
System.out.println(r);
}
public static boolean contains(int num,int[] nums,int offset){
for(int i=0;i<offset;i++){
if(num==nums[i])return true;
}
return false;
}
public static int getcount(int[] array){
Arrays.sort(array);
int count = 0;
for(int i =array.length-1;i>=0;i--){
for(int j =i;j>=0;j--){
if(contains(array[i]-array[j], array,j)){
count++;
}
}
}
return count;
}
}以上代码我本机调试都可以啊。怎么有道就说我有错误呢,他们输入 输入测试数据的。
import java.util.Scanner;
/**
* @author 不再悲伤
*/
public class Main
{
public static void main(String arg[])
{
Scanner sc = new Scanner(System.in);
int szcount = sc.nextInt();
int result[] = new int[szcount];
for(int j=0;j<szcount;j++)
{
int szlength = sc.nextInt();
int [] sz = new int [szlength];
for(int i=0;i<szlength;i++)
{
sz[i]=sc.nextInt();
}
result[j]=Main.getcount(sz);
}
for(int r:result)
System.out.println(r);
} public static boolean contains(int num,int[] nums,int offset){
for(int i=0;i<offset;i++)
{
if(num==nums[i])
return true;
}
return false;
} public static int getcount(int[] array)
{
Arrays.sort(array);
int count = 0;
for(int i =array.length-1;i>=0;i--)
{
for(int j =i;j>=0;j--)
{
//好像是这里出了点问题,但不知道怎么找?
if(contains(array[i]-array[j], array,j))
{
count++;
}
}
}
return count;
}
}
* Filename: heshu.cc
* Description: 和数
* Version: 1.0
* Created: 2010年05月28日 21时49分37秒
* Revision: none
* Compiler: gcc
* Author: zero , [email protected]
* Division: Software College Northeastern University
---------------------------------------------------------------------------*/
#include"iostream"
#include"stdlib.h"
using namespace std;
int main(void)
{
int zushu;
int arrayN;
int *array;
cin >> zushu;
int num[zushu] ;
for( int i=0 ; i<zushu ; i++ )
{
int value=0 ;
cin >> arrayN;
array=(int *)calloc(arrayN,sizeof(int));
for(int j=0;j<arrayN;j++)
{
cin >> array[j];
}
for(int k=0;k<arrayN;k++)
{
for(int q=0;q<arrayN-1;q++)
{
for(int m=q+1;m<arrayN-q;m++)
{
int temp=array[q]+array[m];
if(array[k] == temp)
++value;
}
}
}
free(array);
num[i]=value ;
}
for(int i=0 ; i<zushu ; i++)
cout << num[i] << endl ;
return 0;
}
描述
给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。
输入
第一行是一个整数T,表示一共有多少组数据。 1<= T <= 100
接下来的每组数据共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个整数组成的数列。输出
对于每组数据,输出一个整数(占一行),就是数列中等于其他两个数之和的数的个数。
样例输入
2
4
1 2 3 4
5
3 5 7 9 10
样例输出
2
1
现在我这个程序出现的bug是 有数字‘0’元素的处理。楼上的朋友,你的使用什么语言我不太清楚,但是感谢以上兄弟的关注。题很有意思,有兴趣的大家可以解一解。