我试图用Java实现一个程序,用户输入一个大于10的数字&另一个数字(不管是多少),然后它会列出用户输入的第一个数字,例如,如果是11,它会打印1-11,其中相应的数字在上半年(1-6)增加50,其余的(7-11)减少25。我有下面的代码,但是我很难理解逻辑/如何处理值的增加/减少。
同样,输出应该是这样的:
1 550 2 600 3 650 4 700 5 750 6 800 7 775 8 750 9 725 10 700 11 675
import java.util.Scanner;
public class Periods2
{
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.print("enter the number of days in a given period:");
int numbers = 1;
int number = Integer.parseInt(reader.nextLine());
if(number < 10){
System.out.print("the number of days doesnt meet the required criteria enter it again:");
number = reader.nextInt();
}
System.out.print("enter the number of sharepoints:");
int sharepoints = Integer.parseInt(reader.nextLine());
while (numbers <= number && sharepoints > number){
System.out.println(numbers + " " + sharepoints);
numbers++;
}
}
}发布于 2017-10-24 23:44:49
找到输入的一半,在循环中,您可以向共享点添加50个,直到数字的值达到一半,然后再减少25个:
int half = (int) Math.ceil(number/2.0);
while (numbers <= number && sharepoints > number){
System.out.println(numbers + " " + sharepoints);
if(numbers < half) {
sharepoints += 50;
}
else {
sharepoints -= 25;
}
numbers++;
}https://stackoverflow.com/questions/46921249
复制相似问题