@TOC

1、判断2-100之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到 (这个数),如果能被整除,则表明此数不是素数,反之是素数。?

  //素数:只能被1和他本身整除;合数:还有其他因数。//1、任意一个数如何判断其是否为质数(素数)。/*       int num=97;int count=0;for (int i = 2; i < num; i++) {if(num%i==0){//能被i整出,就是合数;count=-1;break;}}if (count!=0)//说明count未进入上面循环。{System.out.println(num+"是合数");}else System.out.println(num+"是质数");*///2、要从2-100来找,需每个数都要进行以上循环。//3、有一个质数产生,计数器+1,同时打印。//法一:int count=0;for (int num = 2; num <=100; num++) {int flag=0;//判断是否合数的标志for (int i = 2; i < num; i++) //2到他本身,本身不需要判断{if (num%i==0){//代表是合数flag=1;break;}}if (flag!=0){//是合数}else {count++;System.out.println("质数为:"+num);}}System.out.println("有"+count+"质数");//法二:/*   int j;int count=0;for (int i=2;i<=100;i++){for (j=2;j<=i;j++){if (i%j==0){break;}}if (i==j) {count++;System.out.println(i);}}System.out.println("2-100间有"+count+"个素数");*/

2、 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999的数,每个数分解出个位,十位,百位。

        //判断一个数是否是水仙花数://1、去除该三位数的各位数字//2、对这3个数字求立方//3、对立方的结果求和,与之比较/*int num=153;int a=num/100;int b=num/10%10;int c=num%10;int sum=a*a*a+b*b*b+c*c*c;if(num==sum){System.out.println(num+"是水仙花数");}*/for (int i=100;i<1000;i++){int a=i/100,b=i/10%10,c=i%10;if (i==a*a*a+b*b*b+c*c*c){System.out.println(i);}}

3、将一个正整数分解质因数。例如:输入90,打印出90=233*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n不等于k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

/*  int num=90;System.out.print(num+"=");num/=2;System.out.print(2);num/=3;System.out.print("*"+3);num/=5;System.out.print("*"+5);if (num==1){}*///法一:Scanner sc=new Scanner(System.in);System.out.println("请输入一个正整数:");int num=sc.nextInt();System.out.print(num+"=1");for (int i = 2; i <=num ; i++) {if (i==num){System.out.print("*"+num);break;}else {if (num%i==0){num/=i;System.out.print("*"+i);i--;}}}//法二:/*Scanner sc=new Scanner(System.in);System.out.println("请输入一个正整数:");int num=sc.nextInt();System.out.print(num+"=");for (int i=2;i<=num;i++){if (num%i==0&&num!=i){System.out.print(+i+"*");num=num/i;i--;}if (i==num){System.out.print(num);}}*/

4、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如5+55+555+5555+55555(此时共有5个数相加)。

程序分析:关键是计算出每一项的值。

 //法一:Scanner sc=new Scanner(System.in);System.out.println("请输入一个10以内正整数");int a =sc.nextInt();int sum=0;int num = 0;for (int i = 1; i <=a ; i++) {num=num*10+a;sum+=num;}System.out.println(sum);//法二:/*Scanner sc = new Scanner(System.in);System.out.println("请输入一个想要被加的数:(0-9)");int a = sc.nextInt();int c = a;//将输入的初始值保存到C中以便下面使用System.out.println("请输入被加的次数:");int b = sc.nextInt();int sum = a;System.out.print("S=");for(int i=0;i<b-1;i++) {a = a*10+c;sum+=a;if(i==0)System.out.print(c+"+");if(i<b-2) {System.out.print(a+"+");}else {System.out.print(a+"=");}}System.out.println(sum);*/

5、一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数

  //法一:for (int i = 2; i <1000 ; i++) {//求某个数的所有因数int sum=0;//每次循环初始化一次for (int j = 1; j <i ; j++) {if (i%j==0){sum+=j;}}if (i==sum){System.out.print("完数"+i);}}//法二:/*  for (int i = 1; i < 1000; i++) {int sum = 0;for (int j = 1; j < i / 2 + 1; j++) {if (i % j == 0) {sum += j;if (sum == i) {System.out.print(i + " ");}}}}*/

6、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高

 //法一:double height=100;double total=height;for (int i = 1; i <=10 ; i++) {height/=2;//反弹高度System.out.println("第"+i+"次反弹高度为"+height);if(i==10){break;}total+=height*2;}System.out.println("第10次落地经过"+total);//法二:/*double high = 100, sum = 0;for ( int i = 1; i <= 10; i++ ) {sum+=(i<2?high:2*high);high /= 2;}System.out.println(sum + " " + high);*/

7、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

//法一:int count=0;for (int i=1;i<=4;i++){//百位数字for(int j=1;j<=4&&j!=i;j++){//十位数字if (i==j)continue;;for (int k = 1; k <=4&&k !=i&& k!=j ; k++) {//个位if (k==i || k==j)continue;System.out.println(i+""+j+k);count++;}}}System.out.println("一共"+count+"个");//法二:/* int count = 0;for(int i=1;i<5;i++){for(int j=1;j<5;j++){for(int k=1;k<5;k++){if(i!=j&&i!=k&&j!=k){System.out.print((i*100+j*10+k)+" ");count++;if(count%5==0){System.out.println();}}}}}System.out.println();System.out.println("满足条件的数字一共有"+count+"个");*/

8、企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

Scanner s = new Scanner(System.in);System.out.print("请输入该月的利润:");int I = s.nextInt();long sum = 0L;if(I <= 100000) {sum = I / 100 * 10;}else if(I < 200000) {sum = (long) (100000 / 100 * 10 + (I - 100000) / 100 * 7.5);}else if(I < 400000) {sum = (long) (100000 / 100 * 10 + 100000 / 100 * 7.5 + (I - 200000) / 100 * 5);}else if(I < 600000) {sum = (long) (100000 / 100 * 10 + 100000 / 100 * 7.5 + 200000 / 100 * 5 + (I - 400000) / 100 * 3);}else if(I < 1000000) {sum = (long) (100000 / 100 * 10 + 100000 / 100 * 7.5 + 200000 / 100 * 5 + 200000 / 100 * 3 +(I - 600000) / 100 * 1.5);}else {sum = (long) (100000 / 100 * 10 + 100000 / 100 * 7.5 + 200000 / 100 * 5 + 200000 / 100 * 3 + 400000 / 100 * 1.5 + (I - 1000000) / 100);}System.out.println("该月发放的奖金为:" + sum);

9、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析:在10万以内判断,另外由这个数的开方数自乘得到平方数,进行比较

//法一:for (int i = 0; i < 100000; i++) {//1、这个数加上100以后是完全平方数//2、这个数再加上168以后是完全平方数int num1=i+100;int num2=i+268;int temp=0;int num=0;boolean flag=false;for (int j = 1; j <400 ; j++) {if (num1==j*j){temp=j;num=num1;flag=true;}if (flag){if (num2==j*j){//System.out.println(i);System.out.println(i+"+100="+temp*temp);System.out.println(i+"+268="+num2);}}}}//法二:/* for (int i = 1; i < 1000; i++) {int m=(int) Math.sqrt((i+100));int n=(int) Math.sqrt((i+100+168));if (m*m==i+100&&n*n==i+100+168) {System.out.println("这个数是"+i);}}*/

10、 用*打印出菱形

程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。

 for(int i=0;i<4;i++){for (int j=0;j<4-i;j++){System.out.print(" ");}for (int j=0;j<2*i+1;j++){System.out.print("*");}System.out.println();}for(int i=0;i<5;i++){for (int j=0;j<i;j++){System.out.print(" ");}for (int j=0;j<2*(5-i)-1;j++){System.out.print("*");}System.out.println();}

11、 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

程序分析:请抓住分子与分母的变化规律。

 int a =1;int b=2;double sum=b/(double)a; //看视频for (int i = 2; i <=20 ; ) {a=a+b;sum+=a/(double)b;i++;if (i==21){break;}b=a+b;sum+=b/(double)a;i++;}System.out.println(sum);/*  int a = 2, b = 1, temp;// double a=2,b=1,temp;double sum = 0;for (int i = 1; i <= 20; i++) {// 注意此处类型转换,如果进行转换类型,将进行取整处理// 或者声明变量为 double a=2,b=1,temp;sum += (double) a / b;// sum += a/b;temp = a + b;b = a;a = temp;}System.out.println("数列的前20项之和:" + sum);System.out.println("数列的前20项之和(保留两位小数):" + String.format("%.2f", sum));*/

12、 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

 Scanner sc = new Scanner(System.in);System.out.println("请录入一个不多于5位的正整数:");int num = sc.nextInt();int ge = num%10;int shi = num/10%10;int bai = num/100%10;int qian = num/1000%10;int wan=num/10000%10;int shiWan = num/100000;if(num<=0||shiWan!=0){System.out.println("您输入的数字不符合规定");}else if(wan!=0){System.out.println(num+"是五位数");System.out.println(num+"的每位数字的逆序是:"+ge+shi+bai+qian+wan);}else if(qian!=0){System.out.println(num+"是四位数");System.out.println(num+"的每位数字的逆序是:"+ge+shi+bai+qian);}else if(bai!=0){System.out.println(num+"是三位数");System.out.println(num+"的每位数字的逆序是:"+ge+shi+bai);}else if(shi!=0){System.out.println(num+"是两位数");System.out.println(num+"的每位数字的逆序是:"+ge+shi);}else {System.out.println(num+"是个位数");System.out.println(num+"的各位数字是:"+ge);}

13、 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

 System.out.println("请输入一个5位数:");Scanner sc = new Scanner(System.in);int num = sc.nextInt();if (9999 < num && num < 100000) {int num1 = num/10000;int num2 = num/1000%10;int num3 = num/100%10;int num4 = num/10%10;int num5 = num%10;if(num1 == num5 && num2 == num4) {System.out.println(num+"是回文数");}else {System.out.println(num+"不是回文数。");}}else {System.out.println("输入错误:请输入一个5位数");}

14、 对10个数进行排序

 int[] arr = {1, 4, 3, 6, 7, 5, 8, 10, 9, 2};for (int i = 0; i < arr.length; i++) {for (int j = i + 1; j < arr.length; j++) {if (arr[i] > arr[j]) {int n = arr[i];arr[i] = arr[j];arr[j] = n;}}System.out.print(arr[i] + " ");}

15、 打印出杨辉三角形(要求打印出10行如下图)

程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

//法一:int num=10;for (int i = 0; i <num ; i++) {int v=1;int a=i;for (int j = 0; j <= i; j++) {//int b=j;if (j==0) System.out.print(1+" ");else {System.out.print((v=v/j)+" ");}v*=a;a--;//   b++;}System.out.println();}//法二:/*      int [] [] arr = new int[10][10];for(int i = 0;i<arr.length;i++ ){    //外圈行循环,arr.length代表数组arr行的长度for(int j =0;j<=i;j++){          //内圈列循环if(j==0||j==i){    //每行第一个数与最后一个数恒等于1arr[i][j]=1;}else{             //每列第i个等于上一列的第i个数与i-1个数的和arr[i][j] = arr[i-1][j]+arr[i-1][j-1];}System.out.print(arr[i][j]+"\t");    //输出完整一行}System.out.println();     //输出完整一行后换行}*/

16、 求0—7所能组成的奇数个数。

       //每个数字不重复// 各位1,3,5,7,最高位1-7除去个位,其他位0-7除去个位和最高位。//求0—7所能组成的奇数个数//组成1位数是4个。//组成2位数是6*4个。//组成3位数是6*6*4个。//组成4位数是6*6*5*4个。//组成5位数是6*6*5*4*4个。//组成6位数是6*6*5*4*3*4个。//组成7位数是6*6*5*4*3*2*4个。//组成8位数是6*6*5*4*3*2*1*4个。int total = 0;System.out.println("位数为1时:4" );for (int i = 1; i <= 8; i++) {int sum = 4;for (int j = 1; j < i; j++) {if (j == 1) {sum = sum * 6;} else {sum = sum * (8 - j);}if (j == i - 1){System.out.println("位数为" + i + "时:" + sum);}}total += sum;}System.out.println("0—7所能组成的奇数个数为:"+total);

17、 打印直角三角形

  int i = 0;while ( i < 5 ) {for (int j = 0; j < i+1; j++) {System.out.print("* ");}i++;System.out.println();}//直角在左下/* for (int i=0;i<=5;i++){for (int j=0;j<5-i;j++){System.out.print("* ");}System.out.println();}//直角在左上*//* for (int i = 0; i < 5; i++) {for (int j = 0; j < 5-i; j++) {System.out.print("  ");}for (int j = 0; j <i+1; j++) {System.out.print("* ");}System.out.println();}//直角在右下角*//* for (int i = 0; i <5; i++) {for (int j = 0; j <=i-1; j++) {System.out.print("  ");}for (int j=0;j<5-i;j++){System.out.print(" *");}System.out.println();}//直角在右上角*//*  for(int i=0;i<5;i++){for (int j=0;j<5-i;j++){System.out.print(" ");}for (int j=0;j<i;j++){System.out.print("*");}for (int j=0;j<i;j++){System.out.print("*");}System.out.println();}//等腰三角形*//* for(int i=0;i<5;i++){for (int j=0;j<4-i;j++){System.out.print(" ");}for (int j=0;j<2*i+1;j++){System.out.print("*");}System.out.println();}//等腰三角形*/

18、 冒泡排序法

程序分析:01.外层循环N-1 (N:数的个数)
02.内层循环N-1-i (i:比较的轮数,外层循环的变量)
03.两两相比 小靠前!必须进行等量转换!互换位置!

/*冒泡排序法思路1:外层循环:控制它要走几次。
假设你有5个数,那就要走4次,最后一次不用走,最后那个数已经在它位置了所以就要length-1次。
2:内层循环:控制逐一比较,如果发现前一个数比后一个数大,则交换。
注意!因为越比较长度就越小了,所以长度要length-1-i。
————————————————
版权声明:本文为CSDN博主「神经大条蕾弟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_34394641/article/details/72849661*/
// TODO Auto-generated method stubint arr [ ] ={1,6,0,-1,9};int temp=0;//中间值//-------冒泡排序法//外层循环,它决定一共走几趟for(int i = 0;i<arr.length-1;i++){//内层循环,开始逐个比较//如果我们发现前一个数比后一个数大,则交换for(int j=0;j<arr.length-1-i;j++){if (arr[j]>arr[j+1]) {//换位temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}//输出结果for(int i = 0;i<arr.length;i++){System.out.print(arr[i]);}

19、 有3名顾客去商场购物,每人买3件商品商品单价300元以上的商品享受8折优惠请统计每人享受打折优惠的商品的数量

//保存顾客打折的商品数量int count=0;double price=0;Scanner scanner=new Scanner(System.in);
/*** 外层循环控制顾客的数量*/for (int i =1; i <=3; i++) {System.out.println("请输入第"+i+"名顾客购买的商品价格");for (int j =1; j <=3; j++) {/*** 内层循环控制价格*/price=scanner.nextDouble();if (price<300) {continue;}count++;}System.out.println("第"+i+"名顾客打折的商品数量"+count);count++;}

20、 打印梯形

       for(int i=1;i<5;i++){for (int j=0;j<4-i;j++){System.out.print(" ");}for (int j=0;j<2*i+1;j++){System.out.print("*");}System.out.println();}//等腰梯形/*for(int i=3;i<=9;i++){for (int j=1;j<=i;j++){System.out.print("*");}System.out.println();//上3下9直角梯形}*/

循环课后题型整理(二十道)相关推荐

  1. 伟人必须回答的(二十道问题)

    二十道问题如果你喜欢写东西的话,尝试完成下面这个简单的自我测试问卷. 这份问卷是由职业指导专家詹姆斯··戈尼亚()提出的.詹姆斯是年在美国在线()上推广在线职业指导的先行者.下面,请依次写下每一道题的 ...

  2. 【两万字】面试官:听说你很懂集合源码,接我二十道问题!

    问题一:看到这个图,你会想到什么? (PS:截图自<编程思想>) 答: 这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这 ...

  3. 二十道面试题成都至少16k

    面试题: HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理 Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的 ...

  4. PythonNOJ习题前二十道(西北工业大学cpSkill实验平台)

    第一题 输出Hello World print("Hello World") 第二题 输入两个整数A.B,输出它们的和 a = int(input()) b = int(input ...

  5. 小甲鱼python笔记_小甲鱼《零基础学习Python》课后笔记(二十九):文件——一个任务...

    动动手 0.编写一个程序,接受用户的输入并保存为新的文件,程序实现如图: 代码如下:f_name = input('请输入文件名:') f = open(f_name, 'wt') print(&qu ...

  6. 小甲鱼python的课后题好难_小甲鱼《零基础学习Python》课后笔记(二十六):字典——当索引不好用时2...

    测试题 0.Python的字典是否支持一键(Key)多值(Value)? 不支持.对相同的键赋值会覆盖原来的值.>>> dict2 = {1:'one',1:'two',3:'thr ...

  7. 宇轩网络面试题目PHP,二十道接地气的php面试题,让你直接通过面试!就此奉上~...

    1.echo count("abc"); 输出什么? 答:"1"count - 计算数组中的单元数目或对象中的属性个数int count ( mixed var ...

  8. 小甲鱼《零基础学习Python》课后笔记(二十八):文件——因为懂你,所以永恒

    测试题 0.下边只有一种方式不能打开文件,请问是哪一种,为什么? f = open('E:/test.txt','w') # A f = open('E:\test.txt','w') # B f = ...

  9. Java编程基础测题(二十道)

    1.假设有如下程序: public class Demo { public static void main(String args[]) { int num = 2147483647 ; num + ...

最新文章

  1. centos 安装jdk
  2. 简单描述DDL、DCL、DML
  3. IdentityServer4【QuickStart】之使用asp.net core Identity
  4. Finished yeah!
  5. 集美大学诚毅学院计算机科学与技术学费,集美大学诚毅学院计算机科学与技术专业介绍...
  6. C#中反射的使用(How to use reflect in CSharp)(3)Emit的使用
  7. c# 指定打开某个路径下的CMD_Node.js 环境在 Windows 系统下安装与搭建教程
  8. 《Windows 8 权威指南》——2.10 几招解决Windows 8 Metro应用打不开的问题
  9. 娇小可人女友9号 4K无反相机松下GF9评测
  10. less文件转换为css文件
  11. Scratch游戏设计——愤怒的小鸟
  12. Unity 接入有道智云AI - 文档翻译
  13. 独立开发一款简单的安卓app
  14. android模拟器中关闭应用进程
  15. 【警告】扣扣热键你了解多少
  16. 华米 Amazfit 跃我 GTR 4和GTS 4的区别
  17. photoshop 2019 mac版 可支持最新M1芯片处理器
  18. PHP合并多个PDF文件
  19. 无数据 无网络view
  20. 程序员成功之路 ——The road ahead for programmer(演讲稿)(转)

热门文章

  1. ubuntu 18.04 nautilus无法显示图片、视频文件的缩略图(预览)
  2. CSS的三大布局方式(流式布局,浮动布局和层布局)
  3. vue3 TS防抖函数
  4. python实现获取计算机硬件信息并写入excel
  5. JPG格式图片怎么弄?可以试试这些途径
  6. 小蒜给了你一个整数,要求从个位开始分离出它的每一位数字。输入格式输入一个整数,整数在 11 到 10^810 8 之间。输出格式从个位开始按照从低位到高位的顺序依次输出每一位数字。
  7. 多起数据泄密事件再次聚焦企业内部威胁
  8. C中按任意键继续的方式和理解
  9. Android Studio ADB5037端口被vschost.exe占用
  10. Oracle——存储过程 procedure 的创建