给准备做测试的亲友出了一道简单的求和题

原创
2017/04/05 15:29
阅读数 160

在1-99,小于或等于10的(譬如:1+2+...+10),全部相加;大于10的,十位数如果是奇数的,就算他们之间的偶数之和(譬如:12+14+..+30+32..98);如果十位数是偶数的,就求他们之间的奇数之和(譬如:21+23...+87+89)。

package test;

import java.util.Scanner;

/** 
 * @author 苏宝伢 E-mail:by.su@qq.com 
 * @version 创建时间: 2017年4月5日 上午11:15:07
 */
public class SumTest {
	
	public static void main(String[] args) {
		System.out.println("請輸入100以內(1-99)的數字:");
		Scanner scan = new Scanner(System.in);  //接收鍵盤輸入
		boolean flag = true;
		int endNo = 0;
		while(flag){
			String temNo = scan.nextLine();
			if(temNo.matches("\\d{1,2}")){     //判斷輸入是否是1-99之間的數字
				endNo = Integer.valueOf(temNo);
				flag = false;                  //如果是,跳出循環  
			}else{
				System.out.println("你輸入的不是純數字或者長度過長,請重新輸入:");
			}
		}
		scan.close();
		int sum = 0;
		for(int i=1;i<=endNo;i++){
			if(i<=10){                             //小于或等于10
				sum += i;
			}else if((i / 10) % 2 == 1){       //十位数为奇数
				if(i % 2 == 0){                //求偶数的和
					sum += i;
				}else{
					continue;
				}
			}else if((i / 10) % 2 == 0){        //十位数为偶数
				if(i % 2 == 1){                //求奇数的和
					sum += i;
				}else{
					continue;
				}
			}
		}
		System.out.println(sum);
	}
}

可以再加强一下,输入的数字,小于或等于10的(譬如:1+2+...+10),全部相加;大于10的,首位数如果是奇数的,就算他们之间的偶数之和;如果首位数是偶数的,就求他们之间的奇数之和。代码就不写了,跟我一样初学的,可以在评论中实现一下。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部