PAT:1005. Spell It Right (20) AC

#include<stdio.h>
#include<string.h>
char alp[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
char str[1200];
int main()
{
  scanf("%s",str);
  int len=strlen(str);
  int sum=0;
  for(int i=0 ; i<len ; ++i)
    sum+=str[i]-‘0‘;
  if(sum==0)          //判0,直接输出zero
  {
    printf("zero");
    return 0;
  }
  int RESI=0;
  int RES[100];
  while(sum!=0)
  {
    RES[RESI]=sum%10;
    sum/=10;
    ++RESI;
  }
  for(int i=RESI-1 ; i>=0 ; --i)
  {
    printf("%s",alp[RES[i]]);
    if(i!=0)
      printf(" ");
  }
  return 0;
}
时间: 2024-10-08 15:34:45

PAT:1005. Spell It Right (20) AC的相关文章

PAT:1018. 锤子剪刀布 (20) AC

#include<stdio.h> #include<stdlib.h> int main() { int n,maxA,maxB; maxA=maxB=-1; int A[3]={0},B[3]={0}; //0,1,2位置分别存胜利,平局,失败..填入次数 int HARSH1[3]={0},HARSH2[3]={0}; //0:布,1锤子,2剪刀: scanf("%d",&n); for(int t=0 ; t<n ; ++t) { getc

PAT:1001. A+B Format (20) AC

#include<stdio.h> int main() { int a,b; scanf("%d%d",&a,&b); int sum=a+b; if(sum<0) { printf("-"); sum=-sum; } if(sum>=1000000) //[思维],两个数字在:-1000000 <= a, b <= 1000000,之和不会超过1000000再加三个0的数量级 printf("%d,%

PAT:1054. The Dominant Color (20) AC(抓住最多的特点,处理不同和相同的情况,留下剩余的答案)

#include<stdio.h> int main() { int m,n,ans,tmp,times=0; scanf("%d%d",&m,&n); for(int i=0 ; i<n ; ++i) //[思维]题目找出现次数最多的一个,找到不同的,次数减少1,减少到0就换成输入的数字.找到相同的数字,次数+1.最后剩下的一定就是答案 { for(int j=0 ; j<m ; ++j) { scanf("%d",&

PAT:1054. The Dominant Color (20) AC(map法)

#include<stdio.h> #include<map> using namespace std; const int MAX=0x3fffffff; int main() { int m,n; map<int,int> count; //数字与出现次数的map映射 scanf("%d%d",&m,&n); for(int i=0 ; i<n ; ++i) { for(int j=0 ; j<m ; ++j) { i

PAT:1032. 挖掘机技术哪家强(20) AC

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<algorithm> using namespace std; int arr[100010]; int main() { memset(arr,0,sizeof(arr)); int n,len=0,max=0,maxI=0; scanf("%d",&n); for(int i=0 ; i<n

PAT:1023. 组个最小数 (20) AC

#include<stdio.h> #include<algorithm> using namespace std; int main() { int A[10]; fill(A,A+10,0); for(int i=0 ; i<10 ;++i) { scanf("%d",&A[i]); } //输出一个最小非0数 for(int i=1 ; i<10 ; ++i) { if(A[i]>0) { printf("%d"

PAT:1027. Colors in Mars (20) AC

#include<stdio.h> #include<stdlib.h> int main() { int a,b,c; //[思维]168以内的数字可以用两位13进制数表示,大大简化代码 scanf("%d%d%d",&a,&b,&c); char arr[13]={'0','1','2','3','4','5','6','7','8','9','A','B','C'}; //转为13进制的符号 printf("#"

PAT:1019. General Palindromic Number (20) AC

#include<stdio.h> #include<stdlib.h> int main() { int n,jin; scanf("%d%d",&n,&jin); if(0==n) //特判0的时候,就是回文数 { printf("Yes\n0"); return 0; } int arr[50],i=0; while(n!=0) { arr[i++]=n%jin; n/=jin; } int tag=0; for(int

PAT:1014. 福尔摩斯的约会 (20) AC

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<algorithm> using namespace std; char g1[99],g2[99],g3[99],g4[99]; char alp[7][5]={"MON","TUE","WED","THU&qu