天天看點

杭電OJ之1720、1062、2104、1064、2734、1170、1197、2629

1720

#include<stdio.h>

int main()
{
    int a,b;
    while(scanf("%x%x",&a,&b)!=EOF)
    {
        int sum=a+b;
        printf("%d\n",sum);
    }
    return 0;
}


           

1062

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	int t;
	scanf("%d",&t);
	getchar();
	while(t--)
	{
	char s[1010];
	int t,i,j,k=0,l;
	gets(s);
	l=strlen(s);
    for(i=0;i<l;i++)
    {
    	k++;
    	if(s[i]==' ')
    	{
    		for(j=i-1;j>i-k;j--)//如果此時k==1,讓j>=i-k就會出現錯誤。 
    		   printf("%c",s[j]);
			  	k=0;
			  	printf(" ");
    	}
    	if(s[i+1]=='\0')
    	{
    		for(j=i;j>i-k;j--)//注意此處j!=i-k,否則會多一位。 
    		   printf("%c",s[j]);
			  	k=0;
    	}
    }
    printf("\n");
	}
	system("pause");
	return 0;
}

           

2104

#include<stdio.h>
int gcd(int n,int m)
{
	int r;
	while(m)
	{
		r=n%m;
		n=m;
		m=r;
	}
	return n;
}
 
int main()
{
	int n,m;
	while(scanf("%d%d",&n,&m)&&n!=-1||m!=-1)
	{
		if(gcd(n,m)==1)
		   printf("YES\n");
		else
		   printf("POOR Haha\n");
	}
	return 0;
}

           

1064

#include<stdio.h>
#define max 40 
__int64 dp[max];
int main()
{
    int n,i,j;
    dp[1]=2;
    for(i=2;i<max;i++)
    dp[i]=3*dp[i-1]+2;
    while(scanf("%d",&n)!=EOF)
    {
        printf("%I64d\n",dp[n]);
    }
    return 0;
}

           

2734

#include<stdio.h>
#include<string.h>
 int main()
 {
 	char str[300];//str[]數組 
 	int sum;
 	while(gets(str))
 	{
 		
 		if(str[0]=='#')
 			break; 
 		else
 		{   sum=0;
 			int l=strlen(str);
 			for(int i=0;i<l;i++)
 			{
 				if(str[i]==' ')//哎 一開始少了一個=,浪費時間 
 				{
 					sum+=0;
				 }
				 else
				 {
				 	sum+=(i+1)*(str[i]-'A'+1);
				 }
			 }
			 printf("%d\n",sum);
		 }
		 
	 }
	 return 0;
 }

           

1170

#include<stdio.h>
int main()
{
    int t,a,b;
    char c;
    scanf("%d",&t);
    while(t--)
    {
    	getchar();//吸收空格 
        scanf("%c %d %d",&c,&a,&b);
       //或者 scanf("%c%d%d",&c,&a,&b);
        if(c=='+')
            printf("%d\n",a+b);
        else if(c=='-')
            printf("%d\n",a-b);
        else if(c=='*')            
            printf("%d\n",a*b);
        else
        {
            if(a%b==0)
                printf("%d\n",a/b);
            else
                printf("%.2f\n",(float)a/b);//注意要求,另加強制轉換 
        }
    }
    return 0;
 }

           

1197

#include<stdio.h>
#include<string.h>
int judge(int i,int n)
{
	int sum=0;
	do
	{
		sum+=i%n;
		i=i/n;
	}while(i!=0);
	return sum;
}
int main()
{
	int i,j,k;
	for(i=2992,j=0;i<10000;i++)
	if(judge(i,10)==judge(i,12)&&judge(i,10)==judge(i,16))
	printf("%d\n",i);
	
	return 0;
}

           

2629

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int n,t;
    string home,a;
    cin>>n;
    for(int k = 0 ; k < n ; k++)
    {
        cin>>a;
        t = (a[0]-'0')*10+a[1]-'0';
        switch(t)
        {
            case 11:home = "Beijing";break;
            case 31:home = "Shanghai";break;
            case 21:home = "Liaoning";break;
            case 33:home = "Zhejiang";break;
            case 54:home = "Tibet";break;
            case 71:home = "Taiwan";break;
            case 81:home = "Hong Kong";break;
            case 82:home = "Macao";break;
            default :break;
        }
        cout<<"He/She is from "<<home<<",and his/her birthday is on "
        <<a[10]<<a[11]<<","<<a[12]<<a[13]<<","<<a[6]<<a[7]<<a[8]<<a[9]
        <<" based on the table."<<endl;
    }
    return 0;
}
           

繼續閱讀