PAT团队程序设计天梯赛-习题集L1-025 正整数A+B

题目要求

题目分析

首先要声明一下,这个题目,我写的代码没有完全通过编译。

我的方法是这样的:

首先是对输入数据的处理,将整行数据以字符串的形式读入,然后通过字符串分割方法用空格字符串将读入的数据分割并保存在一个数组里。

得到数据之后,先分析输入的是否都是数字字符,是的情况下再将其转换成int型的数字并判断是否在0-1000的范围内。

如果这些情况都符合,就输出计算结果,否则,按判断类型输出其他结果。

示例代码

import java.util.Scanner;
public class L1_025 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//读入一行数据
		String str = sc.nextLine();
		sc.close();
		//分割数据项
		String[] arr = str.split(" ");
		boolean mark1 = true, mark2 = true;
		//判断第一个数据是否都是由数字组成的
		for(int i = 0; i < arr[0].length(); i++) {
			//如果有不是数字的字符,标记状态为非数字并结束判断
			if(arr[0].charAt(i) < '0' || arr[0].charAt(i) > '9') {
				mark1 = false;
				break;
			}
		}
		//同理对第二个数据进行判断
		for(int i = 0; i < arr[1].length(); i++) {
			if(arr[1].charAt(i) < '0' || arr[1].charAt(i) > '9') {
				mark2 = false;
				break;
			}
		}
		//当两个数据都是由数字字符组成时,把他们转换成int型数字并判断是否在[1,1000]的区间内
		if(mark1 && mark2) {
			int num1 = Integer.parseInt(arr[0]);
			int num2 = Integer.parseInt(arr[1]);
			if(num1 < 1 || num1 > 1000) {
				mark1 = false;
			}
			if(num2 < 1 || num2 > 1000) {
				mark2 = false;
			}
		}
		//合法情况,求出两个数的和并根据要求进行显示
		if(arr.length == 2 && mark1 && mark2) {
			System.out.println(Integer.parseInt(arr[0]) + " + " + Integer.parseInt(arr[1]) + " = " + (Integer.parseInt(arr[0])+Integer.parseInt(arr[1])));
			return;
		}
		if(arr.length > 2 && mark1) {
			System.out.println(Integer.parseInt(arr[0]) + " + ? = ?");
			return;
		}
		if(arr.length == 2 && mark1 && !mark2) {
			System.out.println(Integer.parseInt(arr[0]) + " + ? = ?");
			return;
		}
		if(arr.length == 2 && !mark1 && mark2) {
			System.out.println("? + " + Integer.parseInt(arr[1]) + " = ?");
			return;
		}
		if(!mark1 && !mark2) {
			System.out.println("? + ? = ?");
			return;
		}
	}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,这段代码是用来统计输入数字中奇数和偶数的个数的。代码中使用循环遍历输入的数字,通过对2取模运算来判断数字是奇数还是偶数,然后分别对奇数和偶数的计数变量进行加一操作。循环结束后,输出奇数计数变量和偶数计数变量的值,中间用空格隔开。\[1\]\[2\]\[3\] 这段代码可以用来解决团体程序设计天梯赛-练习集 L1-022 奇偶分家的问。 #### 引用[.reference_title] - *1* [PTA团队天梯赛L1-022 奇偶分家](https://blog.csdn.net/m0_46492118/article/details/114481127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [PAT团队程序设计天梯赛-习题集L1-022 奇偶分家](https://blog.csdn.net/qq_38234015/article/details/81291913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [团体程序设计天梯赛-练习集 L1-022 奇偶分家 (10分)(C语言)](https://blog.csdn.net/Baridhu/article/details/109899606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值