习题练习
1. 输入某年某月某日,判断这一天是这一年的第几天?输 入某年某月某日,判断这一天是这一年的第几天
package test.test2_1;
import java.util.Scanner;
public class Test_1 {
public static int search_month(int m,int[] arr){
if(m==2)
{
return -1;
}
for(int i=0;i<arr.length;i++){
if(arr[i]==m){
return 1;
}
}
return 0;
}
public static void main(String[] args) {
int[] arr_b_m = {1,3,5,7,8,10,12};
//定义大月,在后续使用中只需要遍历该数组,如果能找到则为大月。
//注意2月需要单独判断
int m;
Scanner sc = new Scanner(System.in);
int s=sc.nextInt();
int t=sc.nextInt();
int total=0;
m=search_month(s-1,arr_b_m);
for(int i=1;i<s;i++){
if(m==1){
total+=31;
}
else if(m==-1){
total+=28;
}
else if(m==0){
total+=30;
}
}
System.out.println(total+t);
}
}
2. 有1、2、3、4个数字,能组成多少个互不相同且无重复 数字的三位数?都是多少?
package test.test2_1;
public class Test_2 {
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for(int j = 1; j <= 4; j++) {
for(int k = 1; k <= 4; k++){
System.out.print(100*i+10*j+k);
System.out.println();
}
}
}
}
}
3. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字 例如5+55+555+5555+55555(此时共有5个数相加),几个数相加有键盘控制 说明:从键盘中输入数字几 就计算该数字的1到几位数的和: 输入 2 就计算 2+22 输入 3 就计算3+33+333
package test.test2_1;
import java.util.Scanner;
public class Test_3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum=n;
int total=n;
for (int i = 0; i < n; i++) {
sum=10*sum+n;
if(i==n-1){
System.out.print(sum+"=");
}
else{
System.out.print(sum+"+");
}
total+=sum;
}
System.out.println(total);
}
}
4. 求1000以内的勾股数 所谓勾股数,一般是指能够构成直角三角形3条边的3个正整数(a,b,c) a*a+b*b=c*c.
package test.test2_1;
public class Test_4 {
public static void main(String[] args) {
for (int i = 1; i <=100; i++) {
for(int j = i; j <=100 ; j++){
for(int k = j+1; k <=100 ;k++){
//该方法循环次数过高,可以进行数学运算减少循环上限
if(i*i+j*j==k*k){
System.out.println(i+","+j+","+k);
}
else if(i*i+j*j>k*k){
break;
}
}
}
}
}
}
5. 求100以内的所有素数 素数(质数)指的是除了1和自身以外就没有其他数能够整除。
package test.test2_1;
import java.util.ArrayList;
import java.util.List;
public class Test_5 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
//定义一个数组用来存放所有的质数
System.out.print("1\t2\t3\t");
//首先把准备提前存入的数据打印出来
list.add(2);
list.add(3);
//这里不添加1,目的是防止n%1==0恒为真的情况
int i=4;
while (i<100){
int j=0;
while(j<list.size()){
if(i%list.get(j)==0){
break ;
}
else
j++;
}
//遍历质数表,如果数字为合数那么J的结果一定不为list.size()
if(j==list.size()){
list.add(i);
System.out.print(i+"\t");
}
else {
i++;
}
}
}
}
6. 若一个口袋中放有12个球,其中有3个红色的,3个黄色 的,6个绿色的,从中任取8个球,问共有多少中不同的颜 色搭配?
package test.test2_1;
public class Test_6 {
public static void main(String[] args) {
int r=3;
int y=3;
int g=6;
int count=0;
for(int i=1;i<=g;i++){
for(int j=1;j<=y;j++){
for(int k=1;k<=r;k++){
if(r<12-i-j){
break;
}
else{
count++;
}
}
}
}
System.out.println(count);
}
}
7. 编写一个Java程序在屏幕上输出1!+2!+3!+…… +10!的和。
package test.test2_1;
public class Test_7 {
public static int jieCheng(int a){
int r=0;
for (int i=1;i<=a;i++){
r+=i*i;
}
return r;
}
public static void main(String[] args) {
int sum=0;
for (int i=1;i<=10;i++){
sum+=jieCheng(i);
}
System.out.println(sum);
}
}
8. 古典问题:有一对兔子,从出生后第3个月起每个月都生 一对兔子,小兔子长到第三个月后每个月又生一对兔子,假 如兔子都不死,问第十二个月兔子总数为多少?
package test.test2_1;
import Algorithms.Dynamic_Programming.Fibonacci_sequence;
public class Test_8 {
public static void main(String[] args) {
int i;
i=Fibonacci_sequence.fibonacci(12);
//这里调用斐波那契数列直接求结果。
System.out.println(i);
}
}
package Algorithms.Dynamic_Programming;
public class Fibonacci_sequence {
//斐波那契数列算法推荐使用递归
public static int fibonacci(int n) {
if (n == 1 || n == 2){
return 1;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args) {
System.out.println(fibonacci(10));
}
}
9. 将一个正整数分解质因数。例如:输入90,打印出 90=233*5。
package test.test2_1;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test_9 {
//这里我们才有老办法,先找到小于输入值的所有质数,该合数一定可以被分解成该质数的乘积。
static List<Integer> l=new ArrayList<>();
public static void main(String[] args) {
l.add(2);
l.add(3);
int i=4;
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while (i<n){
//这里其实只需要找到小于输入值/2的所有质数即可
int j=0;
while(j<l.size()){
if(i%l.get(j)==0){
break ;
}
else
j++;
}
if(j==l.size()){
l.add(i);
}
else {
i++;
}
}
System.out.print(n+"=");
for(int k=0;k<l.size();){
if(n==l.get(k)){
System.out.print(l.get(k));
}
else if(n%l.get(k)==0){
System.out.print(l.get(k)+"*");
n=n/l.get(k);
k=0;
}
k++;
}
}
}
10. 一个整数,它加上100后是一个完全平方数,再加上 168又是一个完全平方数,请问该数是多少?
package test.test2_1;
public class Test_10 {
public static boolean square_Com(int i){
double temp=Math.sqrt((double)i);
int b_z=(int)temp;
double a_z=temp-(double)b_z;
if(a_z==0){
return true;
}
return false;
}
public static void main(String[] args) {
int i=10;
while(true) {
if(square_Com(i+100)&&square_Com(i+168)){
System.out.println(i);
break;
}
else
i++;
}
}
}
标签:test2,Java,package,int,day4,public,class,static,日记
From: https://blog.csdn.net/qq_59031302/article/details/140492442