C++ string变量 & 洛谷P5730

24 篇文章 2 订阅

真的真的不复杂,数字显示器

输入string就可以用cin

输出string就可以用cout

但是需要头文件#include < string >
或者添加后缀 .c_str(),比如cout<<str…c_str()<<endl;(这里str为string变量)

P5730 【深基5.例10】显示屏
题目描述
液晶屏上,每个阿拉伯数字都是可以显示成 3×5 的点阵的(其中 X 表示亮点,. 表示暗点)。现在给出数字位数(不超过 100)和一串数字,要求输出这些数字在显示屏上的效果。数字的显示方式如同样例输出,注意每个数字之间都有一列间隔。

输入格式

输出格式

输入输出样例
输入
10
0123456789
输出
自己跑一下代码叭,格式太难搞了

#pragma GCC optimize(3,"Ofast")
#include<bits/stdc++.h>
using namespace std;
void intoit_0(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_1(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_2(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_3(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_4(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_5(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_6(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_7(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_8(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_9(string &first,string &second,string &third,string &forth,string &fifth);
void intoit_NULL(string &first,string &second,string &third,string &forth,string &fifth);
int main(){
	string first,second,third,forth,fifth;
	int n;
	cin>>n;
	char num[n+1];
	scanf("%s",num);
	for(int i=0;i<n;i++){
		if(i!=n-1){
			if(num[i]=='0'){
				intoit_0(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='1'){
				intoit_1(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='2'){
				intoit_2(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='3'){
				intoit_3(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='4'){
				intoit_4(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='5'){
				intoit_5(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='6'){
				intoit_6(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='7'){
				intoit_7(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='8'){
				intoit_8(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
			if(num[i]=='9'){
				intoit_9(first,second,third,forth,fifth);
				intoit_NULL(first,second,third,forth,fifth);
			}
		}
		else{
			if(num[i]=='0'){
				intoit_0(first,second,third,forth,fifth);
			}
			if(num[i]=='1'){
				intoit_1(first,second,third,forth,fifth);
			}
			if(num[i]=='2'){
				intoit_2(first,second,third,forth,fifth);
			}
			if(num[i]=='3'){
				intoit_3(first,second,third,forth,fifth);
			}
			if(num[i]=='4'){
				intoit_4(first,second,third,forth,fifth);
			}
			if(num[i]=='5'){
				intoit_5(first,second,third,forth,fifth);
			}
			if(num[i]=='6'){
				intoit_6(first,second,third,forth,fifth);
			}
			if(num[i]=='7'){
				intoit_7(first,second,third,forth,fifth);
			}
			if(num[i]=='8'){
				intoit_8(first,second,third,forth,fifth);
			}
			if(num[i]=='9'){
				intoit_9(first,second,third,forth,fifth);
			}
		}
	}
	printf("%s\n",first.c_str());
	printf("%s\n",second.c_str());
	printf("%s\n",third.c_str());
	printf("%s\n",forth.c_str());
	printf("%s\n",fifth.c_str());
    return 0;
}
void intoit_NULL(string &first,string &second,string &third,string &forth,string &fifth){
	first+=".";
	second+=".";
	third+=".";
	forth+=".";
	fifth+=".";
}
void intoit_0(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="X.X";
	third+="X.X";
	forth+="X.X";
	fifth+="XXX";
}
void intoit_1(string &first,string &second,string &third,string &forth,string &fifth){
	first+="..X";
	second+="..X";
	third+="..X";
	forth+="..X";
	fifth+="..X";
}
void intoit_2(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="..X";
	third+="XXX";
	forth+="X..";
	fifth+="XXX";
}
void intoit_3(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="..X";
	third+="XXX";
	forth+="..X";
	fifth+="XXX";
}
void intoit_4(string &first,string &second,string &third,string &forth,string &fifth){
	first+="X.X";
	second+="X.X";
	third+="XXX";
	forth+="..X";
	fifth+="..X";
}
void intoit_5(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="X..";
	third+="XXX";
	forth+="..X";
	fifth+="XXX";
}
void intoit_6(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="X..";
	third+="XXX";
	forth+="X.X";
	fifth+="XXX";
}
void intoit_7(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="..X";
	third+="..X";
	forth+="..X";
	fifth+="..X";
}
void intoit_8(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="X.X";
	third+="XXX";
	forth+="X.X";
	fifth+="XXX";
}
void intoit_9(string &first,string &second,string &third,string &forth,string &fifth){
	first+="XXX";
	second+="X.X";
	third+="XXX";
	forth+="..X";
	fifth+="XXX";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值