首页 > 代码库 > 循环的经典案例(李白买酒)
循环的经典案例(李白买酒)
1:计算0~100之间所有能被3整除和带3的数字之和
int i=0;//循环变量 int sum=0; while(i<100){ if((i%3==0)||(i%10==3)||(i/10==3)){ sum+=i; } i++; } printf("0~100之间所有能被3整除和带3的数字之和为%d",sum); |
2:打印100~1000之间所有水仙花数,并统计其个数:如==>153=1^3+5^3+3^3
int i=100;//循环变量 int count=0,ge,shi,bai,he;//统计水仙花数 do{ ge=i%10;//获取个位 shi=i/10%10;//获取十位 bai=i/100; //获取百位 he=ge*ge*ge+shi*shi*shi+bai*bai*bai; if(he==i){ printf("%d\t",i); count++; } i++; }while(i<1000); printf("\n100~1000之间共有%d个水仙花数",count); |
3:李白闲来无事街上走,提壶去买酒,遇店加一倍,遇花喝一斗,五遇花和店喝光壶中酒,李白壶中原有多少酒? ===>逆向思维
//分析:假设原有壶中有x斗酒;===>遇到花之前(x+1);遇到店之前(x+1)/2
float x=0;//壶中原有酒的斗数 int i=0; while(i<5){ x=(x+1)/2;//遇到花和店之前的壶中酒的斗数 i++; } printf("李白壶中原有%7.3f斗酒",x);
|
循环的经典案例(李白买酒)