社区讨论
思路讲解
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的值,输出
参照下面写(部分省略防违规),格式有点乱
CPPint 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 条回复,欢迎继续交流。
正在加载回复...