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); }}
另一代码类似。