e799 - p6. 資工系的浪漫
題目描述
題目要求將輸入的 N 個整數 Si,轉換為二進位表示,並用指定的字元 C 代表 1,用 '.' 代表 0,輸出一個 N x M 的圖形。
解題思路
對於每個輸入的整數 Si,我們需要將其轉換為二進位字符串。轉換的過程中,如果當前位是 1,則在字符串中添加字元 C;如果當前位是 0,則添加 '.'。由於需要輸出 M 位二進位,因此需要確保二進位字符串的長度為 M。最後,將生成的字符串反轉後輸出,並在每個字元之間添加空格。
複雜度分析
- 時間複雜度: O(N * M)
- 空間複雜度: O(M)
程式碼
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,m;
cin >> n >> m;
char c;
cin >> c;
long long int a;
while(n--){
cin >> a;
int mm=m;
string t;
while(mm--){
if(a%2==0)
t+='.';
else
t+=c;
a/=2;
}
for(int i=m-1;i>=0;i--){
cout << t[i] << " ";
}
cout << "\n";
}
}