想实现这样的一个功能,但是现在算法我自己有点想不明白了。功能是这样的: “输入M个数值。我想知道他们之间有么有两个或者更多的加起来等于N的”这样的一个算法改怎么写,最好带上程序。谢谢!!!
解决方案 »
- java编写的聊天程序,但不知道好友界面怎么实时刷新!求思路,求指点!
- 这就是 JAVA的真面目
- 【请教】关于换工作直接走人的问题
- ImageIO读JPG出现bandOffsets.length is wrong错误,该如何处理?
- 问一个问题!
- 求助 报错:Disconnected from the target VM, address: '127.0.0.1:4168', transport: 'socket'?
- 一个老问题 关于多级的级联菜单--求救 (struts+JSP)急!!!!!!分不够再加!!!
- anon-access=read只用小乌龟,已经设置了选项,但为什么还可写呢?
- awt中有多选框吗,有没table,怎样实现多选呢?
- 新手求教JAVA中内存相关问题
- JAVA如何反复尝试创建SOCKET连接,直到创建成功
- 急急急急!!!!!
int m=9;
int n=10;
List<Integer> nums = new ArrayList<Integer>();
for(int i=0;i<m;i++){
System.out.println("请输入一个正整数:");
Scanner input = new Scanner(System.in);
String str = input.nextLine();
nums.add(Integer.parseInt(str));
}
Map<Integer,Integer> maps = new HashMap<Integer,Integer>();
System.out.println(nums);
for(int i=0;i<nums.size();i++)
for(int j=i;j<nums.size();j++)
if(nums.get(i)+nums.get(j)==n){
maps.put(nums.get(i), nums.get(j));
}
Iterator<Entry<Integer,Integer>> iter = maps.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<Integer,Integer> entry = (Entry<Integer,Integer>) iter.next();
Object key=entry.getKey();
Object val = entry.getValue();
System.out.println(key+" "+val);
}
}
楼主,是不是你说的意思,当然,m,n可以通过程序运行时,可以自己输入确定。如果是更多的数相加,就要在加循环,Map里面再套map