java_第二章基础




1.百鸡百钱问题,公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,公鸡、母鸡和小鸡各买多少?

package work01;

public class Day {

	public static void main(String[] args){
		for(int i=0;i<=33;i++){
			for(int j=0;j<=20;j++){
				int k=100-i-j;
				if(i*3+5*j+k/3==100&&(k%3==0)){
					System.out.println("公鸡:"+i+" 母鸡"+j+" 小鸡"+k);
				}
			}
		}
	}
}
/*
公鸡:4 母鸡12 小鸡84
公鸡:11 母鸡8 小鸡81
公鸡:18 母鸡4 小鸡78
公鸡:25 母鸡0 小鸡75
*/



2.对输入的数组进行冒泡排序

import java.util.Scanner;

public class Day{

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int a[]=new int [22];
		int n=sc.nextInt();
		for(int i=0;i<n;i++)
		{
			a[i]=sc.nextInt();
		}
		int t;
		for(int i=0;i<n;i++)//外层循环控制循环次数
		{
			for(int j=0;j<n-1-i;j++){//内层循环控制每次循环比较的次数
				if(a[j]>a[j+1])
				{
					t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}
			}
		}
		for(int i=0;i<n;i++){
			System.out.print(a[i]+" ");
		}
	}
}
/*
10
2 3 4 5 7 8 9 10 11 1 
1 2 3 4 5 7 8 9 10 11 
*/


3.对数组a[]={6,8,4,1,9,6,11} 进行选择排序。

public class Day{

	public static void main(String[] args) {
		int a[]={6,8,4,1,9,6,11};
		for(int i=0;i<a.length-1;i++){
			for(int j=i+1;j<a.length;j++){
				if(a[j]<a[i]){
					int t=a[i];
					a[i]=a[j];
					a[j]=t;
				}
			}
		}
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
	}
}
/*
1 4 6 6 8 9 11 
*/


4.找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小(也可能没有鞍点)

import java.util.Scanner;

public class Day {

	public static void main(String[] args) {
		int a[][] = new int[111][111];
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int i, j;
		for (i = 0; i < n; i++) {
			for (j = 0; j < m; j++) {
				a[i][j] = sc.nextInt();
			}
		}
		int max, maxj;
		boolean flag = true;
		for (i = 0; i < n; i++) {
			max = a[i][0];
			maxj = 0;
			for (j = 0; j < m; j++) {
				if (max < a[i][j]) {
					max = a[i][j];
					maxj = j;
				}
			}
			flag = true;
			for (int k = 0; k < n; k++) {
				if (max > a[k][maxj]) {
					flag = false;
					continue;
				}
			}
			if (flag) {
				System.out.println("行号: " + i + " 列号: " + j + " max:" + max);
				break;
			}
		}
		if (flag == false) {
			System.out.println("不存在鞍点");
		}
	}
}


5.打印输出10行杨辉三角形

import java.util.Scanner;

public class Day {

	public static void main(String[] args) {
		int a[][] = new int[111][111];
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int i,j;
		for(i=1;i<=n;i++){
			a[i][1]=1;
			a[i][i]=1;
		}
		for(i=3;i<=n;i++){
			for(j=2;j<=i-1;j++){
				a[i][j]=a[i-1][j]+a[i-1][j-1];
			}
		}
		for(i=1;i<=n;i++){
			for(j=1;j<=i;j++){
				System.out.print(a[i][j]+"\t");
			}
			System.out.println();
		}
	}
}

/*
10
1	
1	1	
1	2	1	
1	3	3	1	
1	4	6	4	1	
1	5	10	10	5	1	
1	6	15	20	15	6	1	
1	7	21	35	35	21	7	1	
1	8	28	56	70	56	28	8	1	
1	9	36	84	126	126	84	36	9	1	
*/

6.水仙花数是指一个数各位数的立方和与该数本身的数值相等的数。编程找出1000以内所有水仙花数。

import java.util.Scanner;

public class Day {

	public static void main(String[] args) {
		int cnt=0;
		for(int i=1;i<=1000;i++){
			int a=i/100;
			int b=i%100/10;
			int c=i%10;
			if(i==Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)){
				cnt++;
				System.out.print(i+" ");
			}
		}
		System.out.print("总数为:"+cnt);
	}
}
/*1 153 370 371 407 1000 总数为:6*/



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值