3問目までは順調だったのにね。
https://www.hackerrank.com/contests/unkoder-05/challenges/print-cuboid
問題
整数W,H,Dが与えられる。
幅W*高さH*奥行Dの立方体をサンプルに従い出力せよ。
解法
色々な考え方ができる。
自分は、角7点の座標を求めて'+'を描いたのち、
- 長さWの横棒3本
- 長さHの縦棒3本
- 長さDの斜め棒3本
を順に描いた。
周りも似た解答だったようだ。
char hoge[30][30]; void solve() { int i,j,k,l,r,x,y; string s; int W,H,D; cin>>W>>H>>D; FOR(y,25) FOR(x,25) hoge[y][x]=' '; hoge[0][D+1]='+'; hoge[0][D+1+W+1]='+'; hoge[H+1][D+1+W+1]='+'; hoge[D+1][0]='+'; hoge[D+1][W+1]='+'; hoge[D+2+H][0]='+'; hoge[D+2+H][W+1]='+'; FOR(x,W) hoge[0][D+2+x]=hoge[D+1][1+x]=hoge[D+2+H][1+x]='-'; FOR(y,H) hoge[1+y][W+D+2]=hoge[D+2+y][0]=hoge[D+2+y][W+1]='|'; FOR(i,D) hoge[D-i][i+1]=hoge[D-i][i+1+W+1]=hoge[D-i+H+1][i+1+W+1]='/'; FOR(y,3+D+H) cout<<hoge[y]<<endl; }
まとめ
ちょっと頭をひねる愚直実装問題。