1.求三个数中最小值和最大值
思路1:先定义两个值min和max赋值给a,然后再将b和c与a进行比较即可
package Hello;
public class test {
public static void main(String[] args) {
int a=5,b=7,c=3;
int min=a;//定义最小值,将a赋给最小值,然后进行比较
if(b<a){
min=b;
}
if(c<b){
min=c;
}
System.out.println("最小值为:"+min);
int max=a;//定义最大值,将a赋给最大值,然后进行比较
if(b>a){
max=b;
}
if(c>b){
max=b;
}
System.out.println("最大值为:"+max);
}
}
思路2:先定义一个中间变量temp,再将三个数进行比较。将最大值或最小值赋给temp即可
package Hello;
public class test {
public static void main(String[] args) {
int a=5,b=7,c=3;
int temp;
if(a<b){
temp=a;
a=b;
b=temp;
}
if(a<c){
temp=a;
a=c;
c=temp;
}
System.out.println("最大值为:"+a);
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
System.out.println("最小值为:"+a);
}
}
思路3:直接运用三目运算符,简洁明了
package Hello;
public class test {
public static void main(String[] args) {
int a=5,b=7,c=3;
int t=(a>b)?a:b;//求a与b之间的最大值
int max=(t>c)?t:c;//求t与c之间的最大值,也就是三个数中的最大值
System.out.println("最大值为:"+max);
int s=(a<b)?a:b;//求a与b之间的最小值
int min=(s<c)?s:c;//求t与c之间的最小值,也就是三个数中的最小值
System.out.println("最小值为:"+min);
}
}
三种算法的结果均为:
最大值为:7
最小值为:3
2.求一百个数的和
直接运用for循环即可
package Hello;
public class test {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++){
sum=sum+i;
}
System.out.println(sum);
}
}
结果:
5050
思考有一行数字序列,第一个数字为1,第二个数字为1+2的和,第三个数字为第二个数字+3的和,第四个数字为第三个数字+4的和...(注意这并不是斐波那契数列);思路其实很简单,将输出语句写到for循环里面即可
package Hello;
public class test {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++){
sum=sum+i;
System.out.print(sum+" ");
if(i%5==0){
System.out.println();
}
}
}
}
结果:
1 3 6 10 15
21 28 36 45 55
66 78 91 105 120
136 153 171 190 210
231 253 276 300 325
351 378 406 435 465
496 528 561 595 630
666 703 741 780 820
861 903 946 990 1035
1081 1128 1176 1225 1275
1326 1378 1431 1485 1540
1596 1653 1711 1770 1830
1891 1953 2016 2080 2145
2211 2278 2346 2415 2485
2556 2628 2701 2775 2850
2926 3003 3081 3160 3240
3321 3403 3486 3570 3655
3741 3828 3916 4005 4095
4186 4278 4371 4465 4560
4656 4753 4851 4950 5050
斐波那契数列是这样的
package Hello;
public class test {
public static void main(String[] args) {
int a1=1,a2=1;
for(int i=1;i<38;i++){
System.out.printf("%10d %10d",a1,a2);
a1=a1+a2;//将前面两个数的和赋值给后面一个数
a2=a2+a1;//依次循环
if(i%5==0){
System.out.println();
}
}
}
}
其结果为(注意输出格式的问题):
1 1 2 3 5 8 13 21 34 55
89 144 233 377 610 987 1597 2584 4181 6765
10946 17711 28657 46368 75025 121393 196418 317811 514229 832040
1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169