Heim > Fragen und Antworten > Hauptteil
大家讲道理2017-05-16 13:26:29
我想说不考虑算法选择要求 这就是个 2x+b = a 求x的小学数学题,如果对算法选择没要求就是输入a,b,输出(a-b)/2 和 (a+b)/ 2.
输入的时候校验下a,b是不是同为奇数或偶数以及数字是不是超变量类型的可用范围,然后自己生成的case也要考虑这个问题
为情所困2017-05-16 13:26:29
import java.math.BigInteger;
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String total, more;
for(int t = 0; t < 10; ++t) {
total = input.nextLine();
more = input.nextLine();;
BigInteger total_apples = new BigInteger(total);
BigInteger excess_apples = new BigInteger(more);
BigInteger ans_1 = total_apples.add(excess_apples).pide(BigInteger.valueOf(2));
BigInteger ans_2 = total_apples.subtract(excess_apples).pide(BigInteger.valueOf(2));
System.out.println(ans_1);
System.out.println(ans_2);
}
}
}
淡淡烟草味2017-05-16 13:26:29
通过你提供的材料,用c++编码如下,望指正!
/*
if Natalia's number of apples is x (x>0)
apples:the number of apple
extra:the number that Klaudia more tha Natalia
(apples>extra>0)
so
x+extra+x=apples
x = (apples-extra)/2
*/
#include <iostream>
int main(int argc, char const *argv[]) {
int apples,extra; //apples:the number of apple extra:the number that Klaudia more tha Natalia
for (size_t i = 0; i < 10; i++) {
std::cin>>apples>>extra; //input
try{
//To determine whether the input is legal
if(apples<=0 || extra<=0 || apples<extra || (apples-extra)%2!=0) throw apples;
int Klaudia,Natalia;
Natalia = (apples-extra)/2; //calculate
Klaudia=Natalia+2;
std::cout<<Klaudia<<'\n'<<Natalia<<'\n'; //output
}
catch(int e){
//ERROR
std::cerr << "ERROR! the number of applse is error.\n" << '\n';
}
}
return 0;
}
运行结果