循环习题

一、题目:

打印时钟

例如WINDOWS任务栏中的时钟

如:

23:59:57

23:59:58

23:59:59

00:00:00

00:00:01?

二、 思路提示:

一秒,一秒的走  用循环

秒大于或小于60两种情况用选择

分大于或小于60两种情况用选择

时大于或小于24(以一天24小时计算)两种情况用选择

三、 程序:

int shi=23;      //定义小时

int fen=58; //定义分钟

int miao=36; //定义秒

for(int i=1;i<=300;i++)

{

miao++;

if(miao==60)

{

miao=0;

fen++;

if(fen==60)

{

fen=0;

shi++;

if(shi==24)

{

shi=0;

}

}

}

if(shi<10)

{

System.out.print("0"+shi+":");

}

else

{

System.out.print(shi+":");

}

if(fen<10)

{

System.out.print("0"+fen+":");

}

else

{

System.out.print(fen+":");

}

if(miao<10)

{

System.out.println("0"+miao);

}

else

{

System.out.println(miao);

}

}



二、题目:

1

11

2

22

222

3

33

333

3333

4

44

444

4444

44444

5

5

5

5

5

5

5

5

5

5

如图打印一个旗;?

二、 思路提示:

如题把旗分成旗头跟旗杆;

旗头由4小旗头组成(一个个) 有次数循环;

每个小旗头又是一层层  有次数循环;

每层由一个个数字组成 有次数循环;

旗杆由一层层组曾;?

三、 程序:

//1.  4个旗头

for (int ceng=1;ceng<=4 ;ceng++ )

{

for (int hang=1;hang<=ceng+1 ;hang++ )

{

//1.1 打印字

for (int zi=1;zi<=hang ;zi++ )

{

System.out.print(ceng);

}

//1.2 换行

System.out.println();

}

}

//2.杆

for (int h=0;h<10 ;h++ )

{

System.out.println("5");

}



三、题目:

    *

  ***

  *****

*******

*********

如图打印

?

二、 思路提示:

一行一行的打印 打印5行,已知次数循环;

每行打印的5-行数个空格;

每行打印2*行数-1个*。

三、 程序:

for(int h=1 ;h<=5 ; h=h+1)

{

for(int k=1 ;k<=5-h ;k++ )

{

System.out.print(" ");//打印

}

for(int o=1 ;o<=2*h-1 ;o++ )

{

System.out.print("o");//打印

}

System.out.println();//打印

}



四、题目:

有8个人在一起数数,从开始当数到8的时候向回数,当数到一得时候在向下数,反复循环问50次后数到几。

二、 思路提示:

数50次 一次又一次 有次数的循环;

是正数还是反数哪?  二选一;

数到8或数1了吗? 二选一。

三、 程序:

int shu=1;

boolean sj=true; //升序降序

for (int ci=1;ci<=50 ;ci++ )

{

if(sj==true)

{

if(shu==8)

{

shu=7;

sj=false;

}

else

{

shu++;

}

}

else

{

if(shu==1)

{

shu=2;

sj=true;

}

else

{

shu--;

}

}

System.out.println(ci+":"+shu);

}



* 五.卖血问题:

* 假设你的女友跟说你有100000我就嫁给你

* 现在输入你的存款数 如果不够就去卖血卖一次赚 300元

* 问卖血多少才能抱得美人归

*/

public static void fun3()

{

//得到你的存款数

Scanner scann = new Scanner(System.in);

System.out.println("请输入你的存款数:");

int ck = scann.nextInt();

//声明一个计数器记录卖血的次数

int cs =0;

//只要你的存款不足100000就一直卖

while(ck<100000)

{

//卖血次数++

cs++;

//存款300

ck+=300;

}

System.out.printf("卖血%d次存款%d",cs,ck);

}

/**

* 卖血问题:

* 假设你的女友跟说你有100000我就嫁给你

* 现在输入你的存款数 如果不够就去卖血卖一次赚 253元

* 要求你至少为爱情卖血一次

* 问卖血多少才能抱得美人归

* do{}while();

*/

public static void fun4()

{

//得到你的存款数

Scanner scann = new Scanner(System.in);

System.out.println("请输入你的存款数:");

int ck = scann.nextInt();

//声明一个计数器记录卖血的次数

int cs =0;

//只要你的存款不足100000就一直卖

do

{

//卖血次数++

cs++;

//存款+253

ck+=253;

}

while(ck<100000);

System.out.printf("卖血%d次存款%d",cs,ck);

}



六.一群人去献血 ,医生说一次能进4个人,我排在第15个,问我第几次能进入

*

* while(如果进入的人数<15)

*/

public static void fun2()

{

//定义一个计数器,用于记录进入的次数

int cs =0;

//定义一个计数器,已经进入的总人数

int rs=0;

while(rs<15)

{

//次数加1

cs++;

//人数加4

rs+=4;

}

System.out.printf("我是第%d次进入的",cs);

}

/**

* 输出1到100之间前7个被3整除的数

* 思路:1、输出 1到100之间所有能被3整数的数

* 2、定义一个计数器来控制输出的个数

*/

public static void fun1()

{

//定义一个计数器,用于记录已经打印的个数

int num=0;

//从1遍历到100

for(int i=1;i<=100 && num<7;i++)

{

if(i%3==0)//能被整除

{

System.out.println(i);

num++;//计数器加1

//判断是否已经打印7个了

/* if(num==7)

{

break;//结束循环

}*/

}

}

}



七.求21的平方根;

二、 思路提示:

对开方进行正向理解可以得

//总有一个整数最接近要开方的数;

1,2,3,4,5,6,7…..

//假设最接近要开方的数是2,总有一个小数接近开方的数。

2.1,2.2,2.3,2.4----2.9 

//依次找下去总一个精度是我们需要的。

2.21,2.22,2.23,2.24---2.29

…………………………………………..

如分析可以一层又一层布知道多少层 但至少要一次用什么循环。?

三、 程序:

double jie=0.0;

do

{

jie=jie+0.0001;

}

while (jie*jie<21);

System.out.println(jie);



八.圆周率问题:【2011全国编程大赛高中组初赛题】

中国古代数学家研究出了计算圆周率最简单的办法:

PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17......

这个算式的结果会无限接近于圆周率的值,我国古代数学家祖冲之计算出,圆周率在多少

3.1415926 和3.1415927 之间,请编程计算,要想得到这样的结果,他要经过多少次加减法运

while(!(pai>=3.1415926 && pai<=3.1415927))

{

向PI上累计加减

//符号 取反

//分母 +2

}

*/

public static void fun2()

{

//定义一个变量表示圆周率

double pai =0;

//定义一个变量表示分母

double fm =1;

//定义一个变量表示符号

boolean flag = true;//true表示是正号

//定义一个计数器

int cs=0;

while(!(pai>=3.1415926 && pai<=3.1415927))

{

if(flag)//加号

{

pai+=4/fm;

}

else

{

pai-=4/fm;

}

//分母+2

fm+=2;

//符号取反

flag = !flag;

//次数++

cs++;

}

System.out.println("经过"+cs+"运算之后!");

}

}



* 九.一个数如果恰好等于它的因子

* (如果一个数能够被一个不是它自身的数整除那么这个数就是它的因子)之和,

* 这个数就称为 "完数 "。例如6=1+2+3.编程 

*  找出1000以内的所有完数。并显示出所属因子 

*  思路:

*    1、遍历 1到10000的每个数

*   

*    2、取出 i的因子和  i=8    返回7

*   

*    3、得到i的因子信息i=8 返回"1+2+4"

*/

/**

* 1、遍历 1到1000的每个数

*/

public static void fun2()

{

for(int i=1;i<=1000;i++)

{

//得到i的因子和

int he = fun3(i);

if(he == i)

{

//显示

//得到i的因子信息

String  yzxx = fun4(i);

System.out.println(i+" "+yzxx);

}

}

}

/**

* 接收一个整数得到该数的因子和

*

*/

public static int fun3(int shu )

{

int he=0;

//让shu依次从1除到shu-1 如果除开表示 这是shu的一个因子

for(int i=1;i<=(shu-1);i++)

{

if(shu%i==0)

{

//表示i是shu的一个因子,追加到he上

he+=i;

}

}

return he;

}

/**

* 得到一个数因子相加的结果

*/

public static String fun4(int shu)

{

String message="(";

//让shu依次从1除到shu-1 如果除开表示 这是shu的一个因子

for(int i=1;i<=(shu-1);i++)

{

if(shu%i==0)

{

//表示i是shu的一个因子,追加到he上

message+=" "+i;

}

}

message+=")";

return message;

}



*十. 选择排序:{9,7,5,3,2,1,15,19}

* 思路:

* 选择length-1次

* 每次将[i,length-1]范围内的最小值和i位置上的值交换

*/

public static void fun3(int[] arr)

{

//选择length-1

for(int i=0;i<=(arr.length-1);i++)

{

//在[i,length-1]的范围内找到最小值的位置

int minIndex=i;

for(int j=i;j<=(arr.length-1);j++)

{

//放minIndex位置上的数和j位置上的数比较

if(arr[minIndex]>arr[j])

{

//将j赋值给minIndex

minIndex=j;

}

}

//交换i和minIndex位置上信息

int temp = arr[i];

arr[i]=arr[minIndex];

arr[minIndex]=temp;

System.out.println(Arrays.toString(arr));

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • Day01 class 例子{ public static void main(String[] args){ ...
    周书达阅读 1,012评论 0 0
  • A: 1、编程将所有“水仙花数”打印出来,并打印其总个数。“水仙花数”是一个各个位立方之和等于该整数的三位数。 f...
    妈妈说喝牛奶能长个阅读 361评论 0 0
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,940评论 0 9
  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 371评论 0 0
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 649评论 0 0