今日代码小练习
输出菱形同行同字母
import java.util.*;
public class demo1 {
public static void main(String []args){
int num=0;
char ch='A';
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个奇数控制你想要的菱形方块的高度");
num=sc.nextInt();
for(int i=1;i<=(num+1)/2;i++){
for(int j=1;j<=(num-(1+(i-1)*2))/2;j++){
System.out.print(" ");
}
for(int h=1;h<=1+(i-1)*2;h++){
System.out.print((char)(ch+(i-1)));
}
System.out.println("");
}
for(int i=(num-1)/2;i>=1;i--){
for(int j=1;j<=(num-(1+(i-1)*2))/2;j++){
System.out.print(" ");
}
for(int h=1;h<=1+(i-1)*2;h++){
System.out.print((char)(ch+(i-1)));
}
System.out.println("");
}
}
}
真是费了我老鼻子劲了,这段代码最核心的地方就是i与j、h之间的关系。具体可以参考我的代码。
请输入一个奇数控制你想要的菱形方块的高度
5
A
BBB
CCCCC
BBB
A
输出三角形同行自增自减字母
import java.util.*;
public class demo1 {
public static void main(String []args){
int num=0;
char ch='A';
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个奇数控制你想要的三角形方块的高度");
num=sc.nextInt();
for(int i=1;i<=(num+1)/2;i++){
for(int j=1;j<=(num-(1+(i-1)*2))/2;j++){
System.out.print(" ");
}
for(int h=1;h<=1+(i-1);h++){
System.out.print((char)(ch+(h-1)));
}
for(int h=i-1;h>=1;h--){
System.out.print((char)(ch+h-1));
}
System.out.println("");
}
}
}
这一段的难度在于分布式输出大写字母,但是道理和上面的公式大同小异
输出菱形同行自增自减字母
import java.util.*;
public class demo1 {
public static void main(String []args){
int num=0;
char ch='A';
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个奇数控制你想要的三角形方块的高度");
num=sc.nextInt();
for(int i=1;i<=(num+1)/2;i++){
for(int j=1;j<=(num-(1+(i-1)*2))/2;j++){
System.out.print(" ");
}
for(int h=1;h<=1+(i-1);h++){
System.out.print((char)(ch+(h-1)));
}
for(int h=i-1;h>=1;h--){
System.out.print((char)(ch+h-1));
}
System.out.println("");
}
for(int i=(num-1)/2;i>=1;i--){
for(int j=1;j<=(num-(1+(i-1)*2))/2;j++){
System.out.print(" ");
}
for(int h=1;h<=1+(i-1);h++){
System.out.print((char)(ch+(h-1)));
}
for(int h=i-1;h>=1;h--){
System.out.print((char)(ch+h-1));
}
System.out.println("");
}
}
}
这个代码就是集大成之作,但是我还是没有优化好,我的初值设置为了1,难度上升,运算增加,但是我不想改动了,改了之后的麻烦程度想想就可怕。
将一个正整数进行分解质因数操作 例如: 输入90 结果 2x3x3x5完成方法封装
import java.util.*;
public class demo1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
System,out,println("请输入一个正整数");
f(num);
}
private static void f(int num) {
for (int i = 2; i < num; i++) {
while (num % i == 0) {
System.out.print(i+"*");
num = num / i;
}
}
if (num > 1) {
System.out.print(num);
}
}
}
请输入一个正整数
90
2*3*3*5
这个还算是经典的算法,封装了一个函数。
利用循环完成15的阶乘完成方法封装
import java.util.*;
public class demo1 {
public static void main(String[] args) {
System.out.println("请输入一个正整数来算阶乘");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
f(num);
}
private static void f(int num) {
int number=1;
for(int i=1;i<=num;i++){
number=i*number;
}
System.out.printf(num+"的阶乘为:"+number);
}
}
简简单单今天的任务就是这些了。