机试题目6号
请编写一个Java程序,能够求出0-1000之间的水仙花数n=3,并且将结果在控制台有序输出。
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
/*需求:请编写一个Java程序,能够求出0-1000之间的水仙花数n=3,并且将结果在控制台有序输出。
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
思路:
1,它要求我们对0~1000之间的三位数,求出水仙花数,则需要对100~999进行遍历,可以用for语句
2,定义三个变量,a,b,c,其中a代表百位的数字,b代表十位的数字,c代表个位的数字,利用遍历的数除以100、10来求每个位的数
3,所以将遍历的数字再跟 a3+b3+c3的和进行判断,相同则是水仙花数*/
class exam6
{
public static void main(String[] args)
{
for(int sum=100;sum<1000;sum++)
{
int a,b,c,temp;
a=sum/100;
b=(sum-a*100)/10;
c=(sum-a*100)-b*10;
temp=a*a*a+b*b*b+c*c*c;
if (sum==temp)
{
System.out.println(sum+"为水仙花数");
}
}
}
}
机试题目7号
请编写一个Java程序,能够求出N!(N<=30),并且将结果在控制台有序输出。
/*需求:请编写一个Java程序,能够求出N!(N<=30),并且将结果在控制台有序输出。N!为阶乘
思路:
1,首先要对每个数要进行遍历,便要使用for语句。
2,然后利用一个变量记录每次遍历的数,并每次把上次遍历的数与该次的数进行相乘,再用该变量记录。以此循环
注意:因为是相乘,变量的初始化,不能为0,要不然相乘,永远都是0,要初始化为1;起始数也从1开始
*/
class exam7
{
public static void main(String[] args)
{
int sum=1;
for (int n=1;n<=30;n++)
{
sum=sum*n;
}
System.out.println("N!的阶乘为:"+sum);
}
}
机试题目8号
请编写一个Java程序,能够计算百鸡问题,已知公鸡5元1只,母鸡3元1只,小鸡1元3只,要求用100元买100只鸡,要求计算出所有的采购方案。并且将结果在控制台有序输出。
/*请编写一个Java程序,能够计算百鸡问题,已知公鸡5元1只,母鸡3元1只,小鸡1元3只,要求用100元买100只鸡,
要求计算出所有的采购方案。并且将结果在控制台有序输出。
思路:
1,定义三个变量代表每种鸡的数量,对其中的两个变量进行遍历,因为,总共100只,两个确定了,其他也肯定确定。利用之前100-确定的两个数量的价钱总和,剩下的钱再乘以3就是小鸡的数量
要注意,限定范围。全买公鸡最多也只能买20只,母鸡33只,小鸡300只
2,然后利用他们的关系,100元买100只鸡,来对符合的数量进行判断,价钱和为100,以及数量和为100*/
class exam8
{
public static void main(String[] args)
{
for (int a=1;a<=20;a++ )
{
for (int b=1;b<=(100-a*5)/3;b++)
{
int c=(100-a*5-b*3)*3;
if (100==a*5+b*3+c/3&&100==a+b+c)
{
System.out.println("公鸡:"+a+" 母鸡:"+b+" 小鸡:"+c);
}
}
}
}
}
机试题目9号
请编写一个Java程序,能够求出0-100之间的斐波那契数,并且将结果在控制台有序输出。
斐波那契数:是指后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数
/*需求:请编写一个Java程序,能够求出0-100之间的斐波那契数,并且将结果在控制台有序输出。
斐波那契数:是指后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数
思路:
1,先定义起始量,n0,n1,n2
2,通过循环来进行相加赋值,并将每次的N2值赋给N1,N1赋给N0来进行动态的求取每个值并输出*/
class exam9
{
public static void main(String agrs [])
{
int n0=0,n1=1,n2;
System.out.print (n0+" "+n1+" ");
for(int i=0;i<=20; i++)
{
n2=n1+n0;
if (n1+n0>100)
break; //设定判断跳出循环
System.out.print(n2+" ");
n0=n1;
n1=n2;
}
System.out.println();
}
}
机试题目10号
请编写一个Java程序,能够计算鸡兔同笼问题,已知笼中共有9个头和26只脚,要求计算出该笼中有几只兔子几只鸡。并且将结果在控制台有序输出。
/*需求:请编写一个Java程序,能够计算鸡兔同笼问题,已知笼中共有9个头和26只脚,
要求计算出该笼中有几只兔子几只鸡。并且将结果在控制台有序输出。
思路:
1,可以对鸡进行遍历,知道鸡的数量就可以知道兔的数量
2,然后在遍历中,对鸡兔之间,利用脚关系进行判断。
*/
class exam10
{
public static void main(String[] args)
{
for (int a=1;a<9;a++)
{
int b=9-a;
if(a*2+b*4==26)
{
System.out.println("鸡:"+a+"兔:"+b);
}
}
}
}