数字的空洞 水 南邮NOJ 1071
生活随笔
收集整理的這篇文章主要介紹了
数字的空洞 水 南邮NOJ 1071
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 數字的空洞
時間限制(普通/Java)?:?1000 MS/?3000 MS?? ? ? ???運行內存限制 : 65536 KByte總提交 : 209 ? ? ? ?? ? 測試通過 : 120?
題目描述
在個位數中:0,4,6,8,9有一個共同的特征:數形上存在空洞,其中8有兩個相切的空洞。?一個非負整數具有多個空洞,給定一個空洞數目h(0 ≤ h ≤ 510),請你寫一個計算機程序來找出能產生這些空洞的數,要求數應盡可能小,且無前導零。
輸入
一行輸入一個非負整數h,表示空洞的數目。
輸出
能產生這些空洞的最小數。
?
注意:輸出部分的結尾要求包含一個多余的空行。
樣例輸入
0
1
15
70
樣例輸出
1
0
48888888
88888888888888888888888888888888888
題目來源
“IBM南郵杯”個人賽2009
思路還是很清晰的,特別情況就是h=1和h=0的情況,其他都可以用統一的方法處理,6是用不到的。實現代碼如下:
#include<iostream> #include<cstdlib> #include<cstdio> #include<algorithm> using namespace std; const int N=510+10; char a[N]; int h; int main() {while(scanf("%d",&h)==1){int cnt=0;if(h==0){printf("%d\n",1);}if(h==1){printf("%d\n",0);}if(h>=2){int p=h/2;for(int i=1;i<=p;i++){a[cnt++]='8';}h=h-p*2;if(h==1){a[cnt++]='4';}for(int j=cnt-1;j>=0;j--){printf("%c",a[j]);}printf("\n");}} }
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
轉載于:https://www.cnblogs.com/Tobyuyu/p/4965599.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的数字的空洞 水 南邮NOJ 1071的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring中bean的五个作用域简介(
- 下一篇: Linux下Vim工具常用命令