java从小白开始的练习
Posted 韶光不负
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从小白开始的练习相关的知识,希望对你有一定的参考价值。
循环输入某同学S1结业考试的5门课成绩,并计算平均分
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个语文成绩:");
double chinese=sc.nextDouble();
System.out.println("请输入一个数学成绩:");
double math=sc.nextDouble();
System.out.println("请输入一个英语成绩:");
double english=sc.nextDouble();
System.out.println("请输入一个it成绩:");
double it=sc.nextDouble();
System.out.println("请输入一个java成绩:");
double java=sc.nextDouble();
double average=(chinese+math+english+it+java)/5;
System.out.println("平均成绩为:"+average);
}
}
请从控制台输入一个数,是质数(素数)还是合数
提示:从2开始,只能被1和它本身除尽的数,是质数(素数)
package com.itheima;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number=sc.nextInt();
for(int i=2;i<number/2;i++){
if(number%i==0 ){
System.out.println(number + "不是质数");
}else if(number<=3){
System.out.println(number + "是质数");
}else {
System.out.println(number + "是质数");
}
}
}
}
求1~100之间不能被3整除的数之和
public class Test {
public static void main(String[] args) {
int sum=0;
for(int i=2;i<100;i++){
if(i%3==0 ){
sum+=i;
}
}
System.out.println("能被3整除的数之和为:"+sum);
}
}
请使用循环完成如下图案的打印
*
***
*****
*******
*****
***
*
public class Test {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
for(int j=5;j>i;j--){
System.out.print(" ");
}
for(int j=0;j<i*2-1;j++){
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<=4;i++){
for(int j=0;j<i;j++){
System.out.print(" ");
}
for(int j=4*2-1;j>=i*2-1;j--){
System.out.print("*");
}
System.out.println();
}
}
}
有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
public class Test {
public static void main(String[] args) {
for (int i = 1000; i <= 9999; i++) {
if ((i/100)% 10 == 3 && (i/10) % 10 == 6) {
if (i%2==0 && i%3==0) {
System.out.print(i + " ");
}
}
}
}
}
编程求一个四位自然数ABCD,它乘以A后变成DCBA
public class Test {
public static void main(String[] args) {
for(int i =1000;i<9999;i++){
int a=(i/1000)%10;
int b=(i/100)%10;
int c=(i/10)%10;
int d=i%10;
int num=d*1000+c*100+b*10+a;
if(i*a==num){
System.out.println("这个数是:"+i);
}
}
}
}
有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
(真分数是指分子小于分母的分数,最简真分数是指分子和分母没有共同公约数的分数)
public class Test {
public static void main(String[] args) {
int denominator,molecular;
for(denominator=1;denominator<140;denominator++){
for(molecular=1;molecular<denominator;molecular++){
if(denominator*molecular==140){
System.out.println(molecular+"/"+denominator);
for(int i=1;i<70;i++){
double x=denominator%i;
double y=molecular%i;
for(int k=1;k<70;k++){
if(k != x || k!=y ) {
}
}
}
}
}
}
}
}
一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
public class Test {
public static void main(String[] args) {
for(int i=10000;i<99999;i++){
int a=i*10+7;
int b=7*100000+i;
if(a*5==b){
System.out.println("这个数是:"+i);
}
}
}
}
把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已.
package com.itheima;
public class Test {
public static void main(String[] args) {
int val =123456789;
for(int i=2;i<=8;i++){
int num=i*val;
if(bits(num)==bits(val) ){
System.out.println(num);
}
}
}
public static int bits(int num) {
if (num <= 10) {
int c = num % 10;
return c;
} else {
int c = num % 10;
return c + bits(num / 10);
}
}
}
验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
package com.itheima;
public class Test {
public static void main(String[] args) {
int val=0;
int arr[]=new int[1000];
for(int i=10;i<100000;i++){
if((i-bits(i))%9==0){
val+=1;
}else {
for(int j=0;j<1000;j++){
arr[j]=i;
}
}
}
if(val==(100000-10)){
System.out.println("成立");
}else {
System.out.println("不成立");
}
System.out.println(arr);
}
public static int bits(int num) {
if (num <= 10) {
int c = num % 10;
return c;
} else {
int c = num % 10;
return c + bits(num / 10);
}
}
}
如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
(素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数)
package com.itheima;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int arr[] =new int[25];
int index=0;
for(int i=1;i<100;i++){
if(true==isPrime(i)){
arr[index]=i;
index++;
}
}
//冒泡思想
for (int i=1;i<=1;i++) {
for(int j=0;j<arr.length-i;j++){
if(arr[j+1]-arr[j]==2){
System.out.println("这样的两孪生数为:"+arr[j]+"与"+arr[j+1]);
}
}
}
}
public static boolean isPrime(int n){
//n<=3时,质数有2和3
if (n <= 3) {
return n > 1;
}
//当n>3时,质数无法被比它小的数整除
for(int i = 2; i < n; i++){
if (n % i == 0) {
return false;
}
}
return true;
}
}
求水仙花数。 ABC = a^3+b^3+c^3
public class Test {
public static void main(String[] args) {
for(int i=100;i<999;i++){
int a=i%10;
int b=(i/10)%10;
int c=(i/100)%10;
double val=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
if(i == val){
System.out.println(i);
}
}
}
}
求 a+aa+aaa+.......+aaaaaaaaa=?
其中a为1至9之中的一个数,项数也要可以指定。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入a:");
double num=sc.nextDouble();
System.out.println("请输入项数:");
int item=sc.nextInt();
System.out.println(cumulative(num,item));
}
public static double cumulative(double num,int item){
if(item==1){
return num;
}else {
double number=0;
for(int i=0;i<item;i++){
number+=num*Math.pow(10,i);
}
return number+cumulative(num,item-1);
}
}
}
求 2/1+3/2+5/3+8/5+13/8.....前20项之和?
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入项数:");
int item=sc.nextInt();
item=item+1;
double val=0;
for (int i=1;i<=item;i++){
val+=(cumulative(item)/cumulative(item-1));
// System.out.println(val);
}
System.out.println("前"+item+"项和为:"+val);
}
public static double cumulative(int item){
if(item==1){
return 1 ;
}else if(item==2){
return 2;
} else {
return cumulative(item-2)+cumulative(item-1);
}
}
}
以上是关于java从小白开始的练习的主要内容,如果未能解决你的问题,请参考以下文章