今天我們如果將a=1,b=2,c=3....以此類推下去,
將單字裏的每個文字依照上面規則轉換成數字再相加起來的話。
知識(KNOWLEDGE)只有96分,
努力(HARDWORK)只有98分,
態度(ATTITUDE)卻是100分。


風台高中的Norton看到了上面的文章後並不相信,
他想把它們真的加起來看看,
以找到一個字可以反駁這個「態度最重要」的理論
但卻討厭換來換去的過程,
請幫他寫個程式方便他去做運算。
輸入說明 :
輸入英文單字,大小寫不限,當輸入0的時候就結束程式。 
長度最長為200個字。 
請參照Sample Input。
輸出說明 :
輸出將英文單字依照題目的規則轉換成數字後相加的結果,如果中間參雜怪異的符號,請輸出Fail;但是英文字母的大小寫並不會影響結果,也就是說A和a所代表的值是相同 
的。請參照Sample Output。


範例輸入 :


hardwork  

KNOWLEDGE  

aTtitUdE  

C++

 0
範例輸出 :


98  

96  

100  

Fail

出處 :
成功電研20th~21st C++ ~最後的競賽~ (作者:MAPLEWING)

http://zerojudge.tw/ShowProblem?problemid=d086


#include <stdio.h>   
   
main()   
{   
long int b,c=0,e;
char a[300]={0};


while(scanf("%s",&a)!=EOF)         
     {  if(a[0]=='0'&&a[1]=='\0' )
          {break;}
      b=0;e=0;    
      while(a[b])
      {
      if(a[b]>='a'&&a[b]<='z')
      {
      e=e+(1+(a[b]-'a'));
      }
      else if(a[b]>='A'&&a[b]<='Z')
      {
      e=e+(1+(a[b]-'A'));
      }        
      else
      {
      e=0;      
      break;        
      }        
      b++;        
      } 
                 
      if(e==0)            
      printf("Fail\n");             
      else            
      printf("%ld\n",e);           
       e=0;            
     }   
  return 0;      


相关文章