这是我为检查阿姆斯壮号而编写的程序。如何用方法编写
例如,如果我想将其分解为以下4种方法
以及启用任务的主要方法
import java.util.Scanner;
class Arm_check1
{
public static void main(String args[])
{
int n=0;
int ori;
int z;
System.out.println("Enter a No.");
Scanner Prakhar=new Scanner(System.in);
n=Prakhar.nextInt();
int digits=(int)Math.floor(Math.log10(n)+1);
System.out.println("No of Digits :"+digits);
int a[]=new int[digits];
int sum=0;
ori=n;
for(int i=0;i<digits;i++)
{
a[i]=n%10;
n=n/10;
}
for(int i=0;i<a.length;i++)
{
sum=(int)Math.pow(a[i],3)+sum;
}
System.out.println(sum);
System.out.println(ori);
if(sum == ori)
{
System.out.println("No. is Armstrong");
}
else
System.out.println("No. is not Armstrong");
}
}
这是我看到的唯一方式,但我的教授说我们不允许在考试中使用相同的内容,即...
void main(){
getnum()
} .... and So On..
这是我在Yluns回答之后再次写的
import java.util.Scanner;
class Arm_check2
{
int n=0;
int ori;
int sum;
void getnum()
{
System.out.println("Enter a No.");
Scanner Prakhar=new Scanner(System.in);
n=Prakhar.nextInt();
check();
}
int check()
{
int digits=(int)Math.floor(Math.log10(n)+1);
System.out.println("No of Digits :"+digits);
int a[]=new int[digits];
int sum=0;
ori=n;
for(int i=0;i<digits;i++)
{
a[i]=n%10;
n=n/10;
}
for(int i=0;i<a.length;i++)
{
sum=(int)Math.pow(a[i],3)+sum;
}
dispsum(sum);
return sum;
}
void dispsum(int sum)
{
System.out.println(sum);
System.out.println(ori);
if(sum == ori)
{
System.out.println("No. is Armstrong");
}
else
System.out.println("No. is not Armstrong");
}
void main()
{
getnum();
}
}
答案 0 :(得分:1)
由于我没有看到合理的尝试,我不会为您编写任何示例代码。但是我会给你这些参考阅读。
了解methods
:Java Methods。它们按照以下格式声明:
(private/public) static (return type) (name of method) (parameters){
//method body
}
你的主要方法应该处理你的其他方法。
答案 1 :(得分:1)
你的主要方法必须保持这种方式:
public static void main(String[] args){
// function body
}
我看到你已经将旧的函数体分成了新的函数,为什么不尝试按照你需要的顺序调用所有这些新函数?
并且您声明它们为int
返回类型,因此您必须存储该结果以使代码的最后一部分正常工作。