Java程序检查技术数

编写一个Java程序来检查数字是否为技术数。例如,如果一个数字有偶数位,它就会被分成两个部分。如果这两部分的平方和等于实际数字,那么它就是一个技术数。所以,在这个例子中,我们首先计算数字的总位数,如果它是偶数,我们就把它分成两半。

接下来,我们计算这两半的和,并对结果进行平方。If语句检查实际数字是否等于平方,如果是,则为技术数。

package NumPrograms;

import java.util.Scanner;

public class TechNumber1 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		sc = new Scanner(System.in);	
		
		System.out.print("Please Enter Number to Check Tech Number = ");
		int tNum = sc.nextInt();
		
		int temp, firstHalf, secondHalf, Sqsum = 0, count = 0;
		
		for(temp = tNum; temp > 0; temp = temp/10)
		{
			count = count + 1;
		}
		
		if(count % 2 == 0)
		{
			temp = tNum;
			firstHalf  = temp % (int)Math.pow(10,  count /2);
			secondHalf = temp / (int)Math.pow(10,  count /2);
			
			Sqsum = (firstHalf + secondHalf) * (firstHalf + secondHalf);
			
			if(tNum == Sqsum)
			{
				System.out.println(tNum +  " is a Tech Number");
			}
			else
			{
				System.out.println(tNum +  " is Not a Tech Number");
			}
		}
		else 
		{
			System.out.println(tNum +  " is Not a Tech Number");
		}
	}

}
Program to Check Tech Number

在这个技术数程序中,digitCount计算数字的位数,sumOfToHalfs将数字分成两半并计算两半的平方和。

package NumPrograms;

import java.util.Scanner;

public class TechNumber2 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		sc = new Scanner(System.in);	
		
		System.out.print("Please Enter Number = ");
		int tNum = sc.nextInt();
		
		int count = digitCount(tNum);
		
		if(count % 2 == 0 && tNum == sumOfToHalfs(tNum, count))
		{	
			System.out.println(tNum +  " is a Tech Number");
		}
		else 
		{
			System.out.println(tNum +  " is Not");
		}
	}
	
	static int digitCount(int tNum)
	{
		int count = 0;
		for(; tNum > 0; tNum = tNum/10)
		{
			count = count + 1;
		}
		return count;
	}
	
	static int sumOfToHalfs(int tNum, int count)
	{
		int firstHalf, secondHalf, Sqsum = 0; 
	
		firstHalf  = tNum % (int)Math.pow(10,  count /2);
		secondHalf = tNum / (int)Math.pow(10,  count /2);
		
		Sqsum = (firstHalf + secondHalf) * (firstHalf + secondHalf);
		
		return Sqsum;
	}

}
Please Enter Number = 2025
2025 is a Tech Number


Please Enter Number = 2050
2050 is Not

Java程序用于检查并打印给定范围内的技术数

此程序将检查数字是否为技术数,然后在给定范围内打印这些值。

package NumPrograms;

import java.util.Scanner;

public class TechNumber3 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		sc = new Scanner(System.in);	
		
		System.out.print("Enter Tech Numbers Start and End Range = ");	
		int start = sc.nextInt();
		int end = sc.nextInt();
		
		int firstHalf, secondHalf, Sqsum = 0;
		
		System.out.println("The List of Tech Numbers from " + start + " to " + end);
		for(int i = start; i <= end; i++)
		{
			firstHalf  = i % 100;
			secondHalf = i / 100;
			Sqsum = (firstHalf + secondHalf) * (firstHalf + secondHalf);
			
			if(i == Sqsum)
			{
				System.out.println(i);
			}
		}
	}
}
Enter Tech Numbers Start and End Range = 1 10000
The List of Tech Numbers from 1 to 10000
1
2025
3025
9801
10000

这是从1到N打印技术数的另一种方法。请参考Java程序

package NumPrograms;

import java.util.Scanner;

public class TechNumber4 {
	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 Techn Numbers from " + start + " to " + end);
		for(int i = start; i <= end; i++)
		{				
			if(i == sumOfToHalfs(i))
			{	
				System.out.println(i);
			}
		}
	}
	
	static int digitCount(int tNum)
	{
		int count = 0;
		for(; tNum > 0; tNum = tNum/10)
		{
			count = count + 1;
		}
		return count;
	}
	
	static int sumOfToHalfs(int tNum)
	{
		int firstHalf, secondHalf, Sqsum = 0; 
		int count = digitCount(tNum);
		
		if(count % 2 == 0)
		{	
			firstHalf  = tNum % (int)Math.pow(10,  count /2);
			secondHalf = tNum / (int)Math.pow(10,  count /2);
		
			Sqsum = (firstHalf + secondHalf) * (firstHalf + secondHalf);
		}
		
		return Sqsum;
	}

}
Enter Start and End Range = 2 10000
The List of Techn Numbers from 2 to 10000
81
2025
3025
9801