4.3 while编程练习
使用while语句完成下面的题目
练习题
-
使用while语句完成下面的题目1.打印1到10,然后10到1,10只出现一次。 (10分) [编程]提示:使用两个while循环2.(*)输入一个整数k,然后打印“ok”,打印的次数就是整数的大小。 (10分) [编程]提示:i初值为0,循环条件i<10,每次i++那么就循环10次,用输入的整数k取代那个10,就循环k次3.打印100(包括100)以内的偶数。 (10分) [编程]提示:i每次加1,在循环内部使用一个if语句判断i是不是偶数,是的话打印i4.打印100以内7的倍数 (10分) [编程]5.(**)输入一个整数k,然后打印出它所有因子。 (10分) [编程]import java.util.Scanner;提示:在循环内部使用一个if语句,用求余作为条件。
每个i从1开始,k对i求余,如果是0,说明i是一个因子,打印i。i每次加1直到i等于k-1,因为i等于k不必判断了,因子是不包括本身的。6.求1+2+3+…+100的值,并打印出最终的和 (10分) [编程]7.(*)循环5次,每次循环输入一个整数,把这个数字赋给整型变量k,最后打印所有k的总和与平均值(两个值打印各占一行,先打印总和再打印平均值)。 (10分) [编程]import java.util.Scanner;总和与平均值都使用int类型
提示:把输入语句放到循环内部。8.(***)打印所有四位数水仙花数 (10分) [编程]四位数水仙花数是这样的一个四位数,它的每个数位的四次方和等于该数字本身。
即个位数的四次方+十位数的四次方+百位数的四次方+千位数的四次方等于该数本身
打印所有四位数的水仙花数。9.(**)循环次数不确定的循环 (4分) [编程填空]import java.util.Scanner;重复此行为:输入一个字符c,并打印出“你输入的是X”(X是刚才输入的字符,例如输入字母a,那么打印“你输入的是a”)。
直到输入’#’才结束(当输入#的时候,没有输出直接结束)。
提示:输入一个字符,然后循环的条件就是这个字符是否等于’#’,如果不等于那么用“你输入的是X”的格式打印该字符,然后重新要求输入一个字符(也就是循环内有一条输入语句),以此循环。public static void main(String[]args){ Scanner scanner=new Scanner(System.in); char c=scanner.next().charAt(0); while( ){ ; c=scanner.next().charAt(0); }}10.(****)输出所有3位“水仙花数”。 (10分) [编程]所谓“水仙花数”是指一个3位数,它的每个数位的立方和等于该数字本身。例如153是一个水仙花数,因为153=1*1*1+3*3*3+5*5*5。提示:求个位用对10求余,求百位直接除以100,求十位自行考虑。11.(***)输入两个数m和n,输出它们的最大公约数。 (10分) [编程]import java.util.Scanner;提示:假设输入的两个数字是m和n。两个数字的公约数是指能除它们的数字,例如两个数字是24和36,那么2、3、4都是它们的公约数。这些公约数有一个是最大的,我们要求的就是这个。最大的公约数一定小于等于m和n,为了使循环次数少一点,我们的循环从2开始(因为1能整除任何自然数,不必验证必定能整除m和n)一直到m(用n也一样)结束,另外定义一个变量max作为最大公约数。
每个i都来验证能不能同时被m和n整除,如果可以那么这个i是一个公约数,把这个i的值赋给max, i逐次递增1。循环结束后max就是最大公约数。
参考算法:
1.输入两个数字m和n循环变量i为2,当前最大公约数max初值为1;
2.如果i能够整除m和n,那么i是一个公约数,把i赋给max(此时直接覆盖掉之前找到的公约数,因为我们要找的是最大的,后面找到的必定更大,所以可以直接覆盖掉),进入第3步;
3.i++,如果i小于m,回到第2步,否则退出循环,进入第四步
4.打印max