2010-4-12 面试题

给定一个整数数组,例如{2,4,5,6,7,8}和一个数字,例如10,请设计一个函数找出两个元素,并且使这两个数的和为给定数字,并答应出来。

代码
using System;
using System.Collections.Generic;

public class MyClass
{
    
public static void Main()
    {
        
int[] a=new int[]{2,3,4,5,6,7,8,9};
        
int sum=10;
        
int n=sum/2;
        
int nc=0;
        
for(int i=0;i<a.Length;i++)
        {
            
if(a[i]>n)
            {
                nc
=i;
                
break;
            }
        }
        
if(nc==0)
        {
            Console.WriteLine(
"没有这样的两个数字之和等于"+sum);
            
return;
        }
        
int nc1=nc;
        
int nc2=nc;
        
while(nc1>=0 && nc2<a.Length)
        {
            
int a1=a[nc1];
            
int a2=a[nc2];    
            
if(a1+a2==sum)
            {
                Console.WriteLine(a1
+"+"+a2+"="+sum);
                nc1
--;
            }
            
else if(a1+a2>sum)
            {
                nc1
--;
            }
            
else if(a1+a2<sum)
            {
                nc2
++;
            }
        }
        Console.ReadLine();
    }
}


 

posted @ 2010-04-12 20:02  科睿思博  阅读(232)  评论(0编辑  收藏  举报