想要把光标向前进一格,实现与\b相反的效果
编译器为Dev c++
如果想将光标向右移动一格,可以使用 ANSI 转义序列\033[C
,其中 C 表示向右移动的格数:
#include <stdio.h>
int main() {
printf("Hello");
printf("\033[1C"); // 将光标向右移动 1 格
printf(" World\n");
return 0;
}
如果答案对您有所帮助,望采纳。
⭐️题目
x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?
⭐️分析
显然,如果只有3台机器,一共可以成5种样式,即:
30台思路很简单,暴力搜索,30个灯光从左到右,从左边第一个开始,第一个可以开关,第二个要根据左边的灯光是否开启来取值,以此类推。。。
⭐️代码
1. #include<iostream>
2. #include<string.h>
3. using namespace std;
4. int ans = 0;
5. int x[31];//0代表关,1代表开
6.
7. void dfs(int index){
8. if(index == 30){
9. ans++;
10. return;
11. }
12. if(index == 0 || x[index-1] == 0){ //第一个灯光可以取0或1,当前灯光左边要是没开,那当前灯光可以取0和1
13. for(int i=0;i<=1;i++){
14. x[index] = i;
15. dfs(index+1);
16. x[index] = 0;
17. }
18. }
19. else{ //左边的灯光开了,那当前灯光只能关闭(取0)
20. dfs(index+1);
21. }
22. }
23.
24. int main(){
25. memset(x,0,31*sizeof(int));
26. dfs(0);
27. cout<<ans<<endl;
28. return 0;
29. }
🎉答案:2178309