我需要找到输入数字的数字的总和和乘积。我有总和部分,但唯一的问题是,当我第一次输入一个数字时,它给了我正确的答案但是当我输入另一个数字时,它只是加上第一个数字和总和的总和第二个数字在一起,然后检查两个总和的总和是否是奇数(对不起,如果它的混乱)。对于代码的产品部分,我似乎无法弄清楚如何做到这一点。
最后,如果总和和产品都是奇数,我需要说输入的数字是极其奇数。
这是作业:
此Java应用程序检查区间[101,100001]中的整数,以查看它们是“非常奇怪”还是“极其奇怪”的数字。
如果...
,整数就是“非常奇怪”(0)这是一个奇数 (1)它有一个奇数位数 (2)它的所有数字都是奇数 (3)其数字之和为奇数 (4)其数字的乘积是奇数
“极其奇怪”的数字是一个极其奇怪的数字,所以......
(5)包括其数字之和的所有数字都是奇数 (6)包含其数字乘积的所有数字都是奇数
循环提示用户输入正整数。当输入-1时,循环结束。对于输入的每个数字,检查它是否非常奇怪(或极其奇怪)。
如果有人能够解释超级奇数部分的要求是什么,那将是值得赞赏的,因为英语不是我的第一语言。 我不需要任何人完成整个任务。我只是需要帮助我遇到的部分。提前谢谢!
public class TestOddNumbers {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
int userInput;
int sum = 0;
int product = 1;
final int EXIT = -1;
final int MIN = 101;
final int MAX = 100001;
String total = "";
do{
System.out.println("Please enter a positive whole number between "
+ "" + MIN + " and " + MAX + ". Enter " + EXIT + " "
+ "when you are done entering numbers.");
userInput = stdin.nextInt();
total += String.valueOf(userInput);
if(userInput==EXIT){
System.out.println("Thanks for playing!");
break;
}
if(userInput > MIN && userInput < MAX){
if(userInput % 2 == 1){
System.out.println("It's an odd number");
}
else{
System.out.println("Not an odd number");
}
if(total.length() %2 == 1){
System.out.println("It also has an odd number of digits");
}
else{
System.out.println("Does not have an odd number of digits");
}
boolean[] allOdds = {true};
String.valueOf(userInput).chars().forEach(i -> {
if(Integer.parseInt(String.valueOf((char)i))%2==0){
allOdds[0] = false;
}
});
if(allOdds[0]){
System.out.println("all digits are odds");
}
else{
System.out.println("all digits are not odds");
}
// The sum code block
while (userInput != 0) {
sum += userInput % 10;
userInput /= 10;
}
if((sum += userInput) % 2 == 1){
System.out.println("The sum of the digits are odd");
}
else{
System.out.println("The sum of the digits are not odd");
}
// The product code block
while(userInput != 0) {
product *= userInput % 10;
userInput /= 10;
}
if((sum *= userInput) % 2 == 1){
System.out.println("The product of the digits are odd");
}
else{
System.out.println("The product of the digits are not odd");
}
}
else{
System.out.println("Check the bounds again!!");
}
System.out.println();
}
while(userInput > MIN || userInput < MAX);
}
}
答案 0 :(得分:1)
public class Product_of_Digits_of_a_Number
{
// accepting a three digit number
static void calc(int n)
{
System.out.println("\f"); // clearing the screen
// extracting each digit from the number
int units = n % 10; // taking the units' digit out of the number and storing in u
int tens = (n / 10) % 10; //taking tens' digit and string in tens.
int hundreds = (n / 10) / 10; //taking hundreds' digit and storing in hundreds
// performing the required calculation on the digits
int a = units * tens * hundreds; // storing the product in a
// printing the digits
System.out.println("the product of digits of " + n + " is " + a);
}
}
如果您想要总和,代码是相同的,但您已将总和存储在变量a
中。