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*/