我是靠谱客的博主 虚幻裙子,最近开发中收集的这篇文章主要介绍杭电oj之2092(整数解)&2096(小明A+B) -----java语言版一、2092(整数解)二、2096(小明A+B),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、2092(整数解)

Problem Description

有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数,它们到底是真还是假,也就是这种整数到底存不存在,实在有点吃不准,你能快速回答吗?看来只能通过编程。
例如:
x + y = 9,x * y = 15 ? 找不到这样的整数x和y
1+4=5,1*4=4,所以,加起来等于5,乘起来等于4的二个整数为1和4
7+(-8)=-1,7*(-8)=-56,所以,加起来等于-1,乘起来等于-56的二个整数为7和-8

Input

输入数据为成对出现的整数n,m(-10000<n,m<10000),它们分别表示整数的和与积,如果两者都为0,则输入结束。

Output

只需要对于每个n和m,输出“Yes”或者“No”,明确有还是没有这种整数就行了。

Sample Input

9 15 5 4 1 -56 0 0

Sample Output

No Yes Yes

本题的思路:首先要分情况,我分了4种情况,可以根据代码看出有4个if条件,每个条件下的代码可以自己写,在第一个if条件下判断二次方程的根是否为整数,也可以根据for循环依次遍历看看能不能找到这样的整数,最主要的是要分情况。

代码如下:

import java.util.Scanner;
import java.math.*;
public class Main{
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		while(in.hasNext()){
			int sum=in.nextInt();
			int mult=in.nextInt();
			boolean t=false;
			if(sum!=0&&mult!=0){
				double a=(-sum+Math.sqrt(sum*sum-4*mult))/(-2);
				double b=(-sum-Math.sqrt(sum*sum-4*mult))/(-2);
				if(a==Math.floor(a)&&b==Math.floor(b))
					System.out.println("Yes");
				else
					System.out.println("No");	
			}
			if(sum==0&&mult!=0){
				for(int i=-10000;i<=10000;i++){
					if(-i*i==mult){
						t=true;
						break;
					}
				}
				if(t)
					System.out.println("Yes");
				else
					System.out.println("No");
			}
			if(mult==0&&sum!=0){
				if(sum<=10000&&sum>=-10000)
					System.out.println("Yes");
				else
					System.out.println("No"); 
			}
			if(sum==0&&mult==0){
				break;
			}
		}
	}
}

二、2096(小明A+B)

Problem Description

小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算.
对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于100, 那么小明也仅保留计算结果的最后两位.
例如, 对于小明来说:
1) 1234和34是相等的
2) 35+80=15

给定非负整数A和B, 你的任务是代表小明计算出A+B的值.

Input

输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两个非负整数A和B(A和B均在int型可表示的范围内).

Output

对于每组测试数据, 输出小明A+B的结果.

Sample Input

2 35 80 15 1152

Sample Output

15 67

本题目比较简单,直接上代码,主要在输出格式那里稍微调整一下:

import java.util.Scanner;
import java.math.*;
public class bluebridge1104{
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		while(in.hasNext()){
			int count=in.nextInt();
			for(int i=0;i<count;i++){
				double a=in.nextDouble();
				double b=in.nextInt();
				double sum=0;
				if(a>=100) a=a%100;
				if(b>=100) b=b%100;
				sum=a+b;
				if(sum>=100) sum=sum%100;
				System.out.printf("%.0frn",sum);
			}
			
		}
	}
}

 

                                                                                  感谢看完,希望给个赞吧

最后

以上就是虚幻裙子为你收集整理的杭电oj之2092(整数解)&2096(小明A+B) -----java语言版一、2092(整数解)二、2096(小明A+B)的全部内容,希望文章能够帮你解决杭电oj之2092(整数解)&2096(小明A+B) -----java语言版一、2092(整数解)二、2096(小明A+B)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部