题目一:根据给出的字符串找规律,对字符串进行操作
- 题目描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
输入:仅有一个数:N ≤ 26。
输出:请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
思路分析:
(1)字符串的规律为A(n) = A(n-1)+'对应的字符'+A(n-1)
(2) StringBuffer类可以实现在末尾添加内容
(3) 则StringBuffer str 初始化为"A",字符初始化为B
(4)先定义一个变量作为临时变量记录str
(5)str后添加对应字符,再添加临时变量
(6)对应字符++
package day1_28;
import java.util.Scanner;
public class Main1461 {public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
StringBuffer str = new StringBuffer("A");
char T = 'B';
for(int i=2;i<=n;i++) {
StringBuffer s = new StringBuffer(str);
str.append(T);
str.append(s);
T = (char) (T+1);
}
System.out.println(str);}
}
-
题目二:分解质因数 n
思路:先找到最小的质因数k
判断:(1)如果n==k,则说明已经找到了最后一个质因数,输出
(2)n!=k:{
(1)如果n能整除k,就说明k是n的质因子,则 n = n/k,输出k
(2)如果不能整除,则k++
public class Main1464 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
for(int i=a;i<=b;i++) {
fenjie(i);
}
}private static void fenjie(int n) {
int k = 2;
System.out.print(n+"=");
while(n!=k) {
if(n%k==0) {
n = n/k;
System.out.print(k+"*");
}else {
k++;
}
}
System.out.println(n);
}
}