系列:A2、C4、D6、E8、G10、H12、I14、J16、K18、M20、....
我试过了....
public class test4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a=2;
char ch = 'A';
for(int i=0;i<=n;i++){
System.out.print(ch+Integer.toString(a));
a+=2;
if(a==4){
ch++;
}
ch++;
System.out.print(" ");
}
}
}
输入:10
输出:A2 C4 D6 E8 F10 G12 H14 I16 J18 K20 L22
预期输出:A2 C4 D6 E8 G10 H12 I14 J16 K18 M20
我在'if'中尝试了不同的语句,但我没有得到预期的输出。有人能帮我解释一下逻辑吗?
在这里需要做的是打印1个字符然后3个字符然后5个字符像这样,我们需要跳过2*skipTimes-1
public static void main(String args[]) throws IOException {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a=2;
int skipFactor = 0;
int skipTimes = 0;
char ch = 'A';
for(int i=0;i<=n-1;i++){
System.out.print(ch+Integer.toString(a)+" ");
a+=2;
ch++;
if(i==skipFactor){
skipTimes+=1;
skipFactor+=Math.pow(2,skipTimes)+1;
ch++;
}
}
}
,输出为,A2 C4 D6 E8 G10 H12 I14 J16 K18 M20 N22