社区讨论

思路讲解

B4067[GESP202412 三级] 打印数字参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mlivnduq
此快照首次捕获于
2026/02/12 11:06
上周
此快照最后确认于
2026/02/12 11:07
上周
查看原帖
这道题不是很阴间
首先 基础的头文件和输入
当0时,输出(?)然后return 0;
数组string a[5];
循环(n的位数次)
最高位做起,即
int powws=pow(10,ws-1);
int t=n/powws;
最后分别判断t的值,输出
参照下面写(部分省略防违规),格式有点乱
CPP
int main(){
	int n;
	cin>>n;
	if(n==0){
cout<<".....\n.***.\n.***.\n.***.\n.....";
		return 0;
	}
	int ws=(int)log10(n)+1;
	string a[5];
	for(int i=0;i<5;i++){
		a[i]="";
	}
	while(ws){
		int powws=pow(10,ws-1);
		int t=n/powws;
		n%=powws;
		ws--;
		if(t==0){
			a[0]+=".....";
			a[1]+=".***.";
			a[2]+=".***.";
			a[3]+=".***.";
			a[4]+=".....";
		}
    //t==1,t==2,t==3,略	
	}
	for(int i=0;i<5;i++){
		cout<<a[i]<<endl;
	}
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...