概述
一、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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复