#4348: 測資太鬆了!


Dick810126 (Dick)

學校 : 國立臺中第一高級中學
編號 : 7771
來源 : [210.60.107.236]
最後登入時間 :
2011-10-28 15:59:11
a008. 中文大寫數字 -- admin | From: [210.60.107.236] | 發表日期 : 2010-10-07 23:07

我認為此題的測資太不謹慎了,

我的CODE如下(有BUG喔!)它竟然給我過了! :

#include <stdio.h>
#include <string.h>

#define MAX 150

char *unit[10]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖",}  ;
char *table[3]={"仟","佰","拾"};
char *thr[4]={"萬","億","兆","京"};

void dis(char * s,int len)
{
 int i,c=(len+3)/4,pos;
 i=(4-len%4)%4;
 do
 {
  for(;i<4;i++)
  {
   pos=len-c*4+i;
   if(s[pos]!='0')
   {
    printf("%s",unit[s[pos]-48]);
    if(i!=3)
     printf("%s",table[i]);
   }else{
    if(pos<len-1&&s[pos+1]!='0'&&i!=3)
     printf("%s",unit[0]);
   }
  }
  if(c>1)
   printf("%s",thr[c-2]);
  i=0;
 }while(--c);
 return ;
}

int main()
{
 char input[MAX];
 while(gets(input)!=NULL)
 {
  dis(input,strlen(input));
  puts("");
 }   
    return 0;
}

有發現BUG嗎?

輸入100000000000000就知道了!

所以我認為測資要再加強一點!

 

 
#4419: Re:測資太鬆了!


abcd6891 (曄哥)

學校 : 國立花蓮高級中學
編號 : 3565
來源 : [220.134.146.174]
最後登入時間 :
2023-09-23 20:09:11
a008. 中文大寫數字 -- admin | From: [140.120.222.68] | 發表日期 : 2010-10-20 11:37

我認為此題的測資太不謹慎了,

我的CODE如下(有BUG喔!)它竟然給我過了! :

#include
#include

#define MAX 150

char *unit[10]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖",}  ;
char *table[3]={"仟","佰","拾"};
char *thr[4]={"萬","億","兆","京"};

void dis(char * s,int len)
{
 int i,c=(len+3)/4,pos;
 i=(4-len%4)%4;
 do
 {
  for(;i<4;i++)
  {
   pos=len-c*4+i;
   if(s[pos]!='0')
   {
    printf("%s",unit[s[pos]-48]);
    if(i!=3)
     printf("%s",table[i]);
   }else{
    if(pos
     printf("%s",unit[0]);
   }
  }
  if(c>1)
   printf("%s",thr[c-2]);
  i=0;
 }while(--c);
 return ;
}

int main()
{
 char input[MAX];
 while(gets(input)!=NULL)
 {
  dis(input,strlen(input));
  puts("");
 }   
    return 0;
}

有發現BUG嗎?

輸入100000000000000就知道了!

所以我認為測資要再加強一點!

 

整數數字 >=0 且 <=2147483647
 
ZeroJudge Forum