编写一个Java程序,使用while循环检查间谍数。任何数字都可以是间谍数,如果其各位数字之和等于各位数字之积。例如,132是一个间谍数,因为1 + 3 + 2 (6) 等于 1 * 3 * 2 (6)。
package NumPrograms;
import java.util.Scanner;
public class SpyNumber1 {
private static Scanner sc;
public static void main(String[] args) {
int num, lastDigit, sum = 0, prod = 1;
sc = new Scanner(System.in);
System.out.print("Enter any Number to Check Spy Number = ");
num = sc.nextInt();
int n = num;
while(num > 0)
{
lastDigit = num % 10;
sum = sum + lastDigit;
prod = prod * lastDigit;
num = num / 10;
}
System.out.println("The Sum of Total Digits = " + sum);
System.out.println("The Product of Total Digits = " + prod);
if (sum == prod)
{
System.out.println(n + " is a Spy Number");
}
else
{
System.out.println(n + " is Not a Spy Number");
}
}
}

这个Java程序使用for循环检查给定的数字是否是间谍数。
package NumPrograms;
import java.util.Scanner;
public class SpyNumber2 {
private static Scanner sc;
public static void main(String[] args) {
int num, lastDigit, sum, prod;
sc = new Scanner(System.in);
System.out.print("Enter any Number = ");
num = sc.nextInt();
int n = num;
for(sum = 0, prod = 1; num > 0; num = num /10)
{
lastDigit = num % 10;
sum = sum + lastDigit;
prod = prod * lastDigit;
}
System.out.println("The Sum of Total Digits = " + sum);
System.out.println("The Product of Total Digits = " + prod);
if (sum == prod)
{
System.out.println(n + " is a Spy Number");
}
else
{
System.out.println(n + " is Not");
}
}
}
Enter any Number = 132
The Sum of Total Digits = 6
The Product of Total Digits = 6
132 is a Spy Number
Enter any Number = 121
The Sum of Total Digits = 4
The Product of Total Digits = 2
121 is Not
在这个示例中,checkSpyNumber函数检查给定的数字是否是间谍数,并返回布尔值。
package NumPrograms;
import java.util.Scanner;
public class SpyNumber3 {
private static Scanner sc;
public static void main(String[] args) {
sc = new Scanner(System.in);
System.out.print("Enter any Number = ");
int num = sc.nextInt();
if (checkSpyNumber(num) == true)
{
System.out.println(num + " is a Spy Number");
}
else
{
System.out.println(num + " is Not");
}
}
static boolean checkSpyNumber(int num)
{
int lastDigit, sum, prod;
for(sum = 0, prod = 1; num > 0; num = num /10)
{
lastDigit = num % 10;
sum = sum + lastDigit;
prod = prod * lastDigit;
}
System.out.println("The Sum of Total Digits = " + sum);
System.out.println("The Product of Total Digits = " + prod);
if (sum == prod)
{
return true;
}
else
{
return false;
}
}
}
Enter any Number = 2215
The Sum of Total Digits = 10
The Product of Total Digits = 20
2215 is Not
Enter any Number = 4211
The Sum of Total Digits = 8
The Product of Total Digits = 8
4211 is a Spy Number
此程序检查并打印从1到N或给定范围内的间谍数。
package NumPrograms;
import java.util.Scanner;
public class SpyNumber4 {
private static Scanner sc;
public static void main(String[] args) {
sc = new Scanner(System.in);
System.out.print("Enter Start and End Range = ");
int start = sc.nextInt();
int end = sc.nextInt();
System.out.println("The List of Spy Numbers from " + start + " to " + end);
for(int i = start; i <= end; i++)
{
if (checkSpyNumber(i) == true)
{
System.out.print(i + " ");
}
}
}
static boolean checkSpyNumber(int num)
{
int lastDigit, sum, prod;
for(sum = 0, prod = 1; num > 0; num = num /10)
{
lastDigit = num % 10;
sum = sum + lastDigit;
prod = prod * lastDigit;
}
if (sum == prod)
{
return true;
}
else
{
return false;
}
}
}
Enter Start and End Range = 2 10000
The List of Spy Numbers from 2 to 10000
2 3 4 5 6 7 8 9 22 123 132 213 231 312 321 1124 1142 1214 1241 1412 1421 2114 2141 2411 4112 4121 4211