
1.求1-100的加和,1-100之间奇数的加和
package day02text;
public class The1 {
public static void main(String[] args) {
//sum1是1-100的加和,sum2是1-100之间奇数的加和
//1-100的加和
int sum1 =0,sum2 =0;
for(int i = 1;i <= 100;i++){
sum1 =sum1 + i;
}
System.out.println(sum1);
//1-100之间奇数的加和
for(int i = 1;i <= 100;i+=2){
sum2 =sum2+ i;
}
System.out.println(sum2);
}
}
2.有100匹马,分别是大马,中马,和小马 ,有100块砖头,大马 一次能驮3块砖,中马 一次能驮2块砖,三匹小马 一次能驮 1块砖,刚好一次驮完,问 有多少大马,多少中马,多少小马(每种马的个数不能为0,并且不能有闲着的马)
注意 : 小马个数 是3的倍数,类型可以使用double
package day02text;
public class The2 {
public static void main(String[] args) {
//大马x 中马y 小马z
int x ,y=1;
int z = 3;
for(x=1;x<=100;x++){
for(y=1;y<=100;y++){
for(z=3;z<=300;z+=3){
if(x+y+z==100 && 3*x+2*y+z/3==100){
System.out.println(x+" "+y+" "+z);
}
}
}
}
}
}
为减少运算次数,优化以后为
package day02text;
public class The2 {
public static void main(String[] args) {
//大马x 中马y 小马z
int x ,y=1;
//为了方便设定小马的初始为3
int z = 3;
for(x=1;x<=33;x++){
for(y=1;y<=50;y++){
z=100-x-y;
if(3*x+2*y+z/3==100){
System.out.println(x+" "+y+" "+z);
}
}
}
}
}
运算结果
3. 小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。
package day02text;
public class The3 {
public static void main(String[] args) {
//设需要的天数为day
int day=1;
//钱的总数为money
double money;
for(money=2.5;money<=100;money+=2.5,day++){
if(day % 5 ==0){
money = money - 6;
}
}
System.out.println(day);
//运算结果为74
}
}
4.我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
package day02text;
public class Text4 {
public static void main(String[] args) {
//设折叠次数为time
int time=0;
//初始值纸张厚度为w
double w=0.01;
for(w = 0.01;w <= 8848;w *= 2,time++){
}
System.out.println(time);
//运行结果为20次
}
}
2、循环
2.1while
package day_04text;
public class Text1 {
public static void main(String[] args) {
//for循环
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
//while循环
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
}
}
2.2do..while...
package day_04text;
public class Text2 {
public static void main(String[] args) {
//若条件不符合则出现不执行情况
for (int i = 0; i < -1; i++) {
System.out.println(i);
}
//while
int a = 1;
int b = 2;
while (a > b) {
System.out.println("执行");
}
// dowhile是先执行,再判断
do {
System.out.println(3);
} while (a > b);
System.out.println("执行");
}
}
2.3Break
package day_04text;
public class Tex3 {
public static void main(String[] args) {
//查询7~10000中第一个完美数
int i,g,sum=0;
for(i=7;i<=10000;i++){
for(g=1; g< i;g++){
if(i % g == 0){
sum+=g;
}
}
if(i == sum){
System.out.println(i);
//找到之后终止循环
break;
}
//清空和
sum = 0;
}
}
}
2.4 BreakOutFor
package day_04text;
public class Text4 {
public static void main(String[] args) {
//设置外层循环名字为outFor
outFor: for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j == 3) {
// 只能终止内层循环
// break;
// 终止外层循环
break outFor;
}
System.out.print(j + " ");
}
System.out.println();
}
}
}
2.5Continue
package day_04text;
public class Text5 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 3) {
// 跳过当前次,直接i++
continue;
}
//打印结果 0,1,2,4,5,6,7,8,9 没有3
System.out.println(i);
}
}
}
3、方法
3.1概述
什么是方法 : 很多条语句的集合,只要我们使用这个方法,就等于使用这些代码
方法目的 : 1 代码复用 , 2 使程序更加简短更清晰 , 3 有利于程序维护 , 4 提高开发效率
package day_04text;
public class Text_Method {
public static void main(String[] args) {
Text_Method.m1();
m1();
}
// 没有返回值
public static void m1(){
for (int j = 0; j < 10; j++) {
if (j == 5) {
//没有返回值return可以不加,如果写了return也不能写任何返回数据,只能单独出现
return;
}
}
}
// 有返回值
public static int m2(){
//必须写,而且return后要写和返回值类型对应的数据
return 22;
}
}
3.3方法的分类
3.4方法调用
方法不调用不执行,调用才执行,并把结果返回到调用处
// println_01();
// println_02(7);
int result = sum(3, 9);
System.out.println(result);
}
// 1 需求 : 向控制台打印1-100的值
public static void println_01() {
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
}
// 2 需求 : 向控制台打印1~N的值
// 参数列表中的变量是局部变量
public static void println_02(int n) {
for (int i = 1; i <= n; i++) {
System.out.println(i);
}
}
// 3 需求 : 计算 n-m直接的累加加和并返回, ps : 假设 n小于m,均为整数
public static int sum(int n, int m) {
int sum = 0;
for (int i = n; i <= m; i++) {
sum += i;
}
return sum;
}
//4 需求 给定三个整数,返回其中最大的一个数,要求这三个数不相等
int e;
e=max(3,6,9);
System.out.println(e);
public static int max( int a,int b,int c){
int d;
if(a
例题
1.编程求1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。例如,6的因子有、2、3,且6=1+2+3,所以6是完全数。
思路把能整除的数都累加加起来,判断是否等于本身
package day_04text;
public class Wonderful {
public static void main(String[] args) {
//i完美数;g是因子sum是因子加和
int i,g,sum=0;
for(i=1;i<=10000;i++){
for(g=1; g< i;g++){
//判断哪个是因子
if(i % g == 0){
//因子相加
sum+=g;
}
}
//判断是不是完全数,并输出完全数
//输出结果6,28,496,8128
if(i == sum){
System.out.println(i);
}
//清空加和,寻找下一个完全数
sum = 0;
}
}
}
2.编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,现有百钱欲买百鸡,共有多少种买法?(钱必须要花完)
package day_04text;
public class Chicken {
public static void main(String[] args) {
//设公鸡为g,母鸡m,小鸡x
int g,m;
double x;
for(g=0;g<20;g++){
for(m=0;m<33;m++){
x = 100-g-m;
if( 5*g+3*m+x/3 ==100){
System.out.println(g+" "+m+" "+x);
}
}
}
}
}