package 乒乒乓乓; import java.util.Scanner; /* * * author:hansongjiang 分别求整数数组里面的奇数与偶数之和 问题描述:从标准输入里面接收一个字符串,整数之间用逗号(“,”)隔开,如2,3,5,7,9,10,打印最终结果,并且用逗号隔开(另外还有一些限制对问题影响不大) 示例输入与输出: 输入:2,3,5,8,9 输出:17,10 */ public class 偶数基数 { public static void main(String args[]) { Scanner s=new Scanner(System.in); String src=s.next(); String s2[]=src.split(","); int n[]=new int[s2.length]; int even=0; int odd=0; for(int i=0;i<s2.length;i++) { n[i]=Integer.parseInt(s2[i]); if(n[i]%2==0) { even+=n[i]; } else { odd+=n[i]; } } System.out.println(even+"---"+odd); } }
二。给定五个整数1,3,9,27,81,这个五个整数可以任意组合进行加减(可以是五个数中的部分相加),这五个数组合进行加减可以得到1~122之间的数, 任意输入1~122之间的一个整数,得到其相应的组合,并且按照由大到小的顺序输出其表达式
示例输入输出
输入:5
输出:9-3-1
这个问题和2014的 等式变换异曲同工
描述:
输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。
1 2 3 4 5 6 7 8 9 =
X
比如:
12-34+5-67+89 = 5
1+23+4-5+6-7-8-9 =
5
请编写程序,统计满足该输入整数的所有等式的个数。
两个思路一致,现贴出我的代码:
package 乒乒乓乓; /* * author :hansongjiang 给定五个整数1,3,9,27,81,这个五个整数可以任意组合进行加减(可以是五个数中的部分相加),这五个数组合进行加减可以得到1~122之间的数, 任意输入1~122之间的一个整数,得到其相应的组合,并且按照由大到小的顺序输出其表达式 示例输入输出 输入:5 输出:9-3-1 */ public class 组合加减 { public static final int[] source={81,27,9,3,1}; public static void xulie(int index,int restult[]) //获得序列 {0,1,2,}组成序列 { if(index==5) { //System.out.println("得到结果"+restult[0]+restult[1]); boolean ans=getSum(restult); if(ans) { String ans1=""; for(int i=0;i<5;i++) { if(restult[i]==1) { ans1+=source[i]; } if(restult[i]==-1) { ans1+=source[i]*-1; } } System.err.println(ans1); } } else { for(int i=-1;i<2;i++) { restult[index]=i; xulie(index+1,restult); } } } public static boolean getSum(int[] res) { int[] temp=new int[5]; int sum=0; for(int i=0;i<5;i++) { temp[i]=source[i]*res[i]; sum+=temp[i]; } if(sum==5) return true; else return false; } public static void main(String[] args) { int res[]=new int[5]; // TODO Auto-generated method stub xulie(0,res); } }
另一代码类似。