生活随笔
收集整理的這篇文章主要介紹了
hdu1256-画8
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
畫8
題目鏈接戳這里:hdu1256
主要是理解題目意思,豎線寬度有總高度決定,總高度每升高6,豎線寬度增加1,橫線長度由下圈高度決定,因為下圈要求是正方形,同時上圈高度也由下圈決定,因為題目要求兩者盡可能相等而且上圈高度不大于下圈高度,那么上圈高度要么等于下圈高度,要么等于下圈高度減一。打印的話就沒什么問題了。還有就是注意高度不大于5,最后一次輸出不要空行
#include <iostream>
using namespace std
;
void print8(int n
, char a
) {int length
, width
, heit1
, heit2
;if (n
== 5)width
= 1;if (n
== 6)width
= 2;if (n
> 6)width
= 2 + (n
- 6) / 6;if (n
% 2 == 0){heit2
= (n
- 2) / 2;heit1
= heit2
- 1;length
= heit2
;}if (n
% 2 != 0){heit2
= (n
- 3) / 2;heit1
= heit2
;length
= heit2
;}for (int i
= 0; i
< width
; i
++){cout
<< ' ';}for (int i
= 0; i
< length
; i
++){cout
<< a
;}cout
<< endl
;for (int i
= 0; i
< heit1
; i
++){for (int j
= 0; j
< width
; j
++){cout
<< a
;}for (int j
= 0; j
< length
; j
++){cout
<< ' ';}for (int j
= 0; j
< width
; j
++){cout
<< a
;}cout
<< endl
;}for (int i
= 0; i
< width
; i
++){cout
<< ' ';}for (int i
= 0; i
< length
; i
++){cout
<< a
;}cout
<< endl
;for (int i
= 0; i
< heit2
; i
++){for (int j
= 0; j
< width
; j
++){cout
<< a
;}for (int j
= 0; j
< length
; j
++){cout
<< ' ';}for (int j
= 0; j
< width
; j
++){cout
<< a
;}cout
<< endl
;}for (int i
= 0; i
< width
; i
++){cout
<< ' ';}for (int i
= 0; i
< length
; i
++){cout
<< a
;}cout
<< endl
;
}
int main()
{int N
, n
;char a
;cin
>> N
;for (int i
= 0; i
< N
- 1; i
++){cin
>> a
;cin
>> n
;if (n
< 5)continue;elseprint8(n
, a
);cout
<< endl
;}cin
>> a
;cin
>> n
;print8(n
, a
);return 0;
}
總結
以上是生活随笔為你收集整理的hdu1256-画8的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。