• PAT乙级部分


    1001 害死人不偿命的(3n+1)猜想 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int n;
    	int i=0;
    	scanf("%d",&n);
    	while(n!=1)
    	{
    		if(n%2==0)
    		{
    			n=n/2;
    			i++;
    		}
    		else
    		{
    			n=(3*n+1)/2;
    			i++;
    		}
    	}
    	printf("%d",i);
    	return 0;
    }
    

    1006 换个格式输出整数 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int n,one,ten,hunderd;
    	scanf("%d",&n);
    	one=n%10;
    	ten=((n-one)%100)/10;
    	hunderd=(n-one-ten*10)/100;
    	for(int i=0;i<hunderd;i++)
    	{
    		printf("B");
    	}
    	for(int i=0;i<ten;i++)
    	{
    		printf("S");
    	}
    	for(int i=1;i<=one;i++)
    	{
    		printf("%d",i);
    	}
    	return 0;
    }
    

    1011 A+B 和 C (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int num;
    	long a,b,c;
    	scanf("%d",&num);
    	for(int i=1;i<=num;i++)
    	{
    		scanf("%ld %ld %ld",&a,&b,&c);
    		if(a+b>c)
    		{
    			printf("Case #%d: true
    ",i);
    		}
    		else
    		{
    			printf("Case #%d: false
    ",i);
    		}
    	}
    	return 0;
    }
    

    1016 部分A+B (15 分)

    参考https://blog.csdn.net/qq_45800977/article/details/106318498

    #include<stdio.h>
    
    int main()
    {
    	long a,b,da,db;
    	long pa=0;
    	long pb=0;
    	int i;
    	scanf("%ld %ld %ld %ld",&a,&da,&b,&db);
    	i=1;
    	if(da==0)
    	{
    		pa=0;
    	}
    	else if(a<10)
    	{
    		pa=a;
    	}
    	else
    	{
    		while(a>=i*da)
    		{
    			if((a-da*i)%(i*10)<i)
    			{
    				pa=pa*10+da;
    			}
    			i=i*10;
    		}
    	}
    	i=1;
    	if(db==0)
    	{
    		pb=0;
    	}
    	else if(b<10)
    	{
    		pb=b;
    	}
    	else
    	{
    		while(b>=i*db)
    		{
    			if((b-db*i)%(i*10)<i)
    			{
    				pb=pb*10+db;
    			}
    			i=i*10;
    		}
    	}
    	printf("%ld",pa+pb);
    	return 0;
    }
    

    1021 个位数统计 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int ones[10]={0};
    	char num[1000];
        int i=0;
        int n;
    	scanf("%s",num);
    	while(num[i]!='')
    	{
            n=num[i]-'0';
            ones[n]=ones[n]+1;
            i++;
    	}
    	for(int j=0;j<10;j++)
    	{
            if(ones[j]!=0)
            {
                printf("%d:%d
    ",j,ones[j]);
            }
    	}
    	return 0;
    }
    

    1026 程序运行时间 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	const int CLK_TCK=100;
    	long start,end,times,hours,minutes,seconds;
    	scanf("%ld %ld",&start,&end);
    	times=(end-start)/CLK_TCK;
    	if ((end - start) % CLK_TCK >= 50)
    	{
    		times=times+1;
    	}
    	seconds=times%60;
    	minutes=((times-seconds)/60)%60;
    	hours=(times-60*minutes-seconds)/3600;
    	printf("%02ld:%02ld:%02ld",hours,minutes,seconds);
    	return 0;
    }
    

    1031 查验身份证 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	char idcard[18];
    	int num;
    	int check=0;
    	int weight[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    	char check_bit[11]={'1','0','X','9','8','7','6','5','4','3','2'};
    	scanf("%d",&num);
    	int k=0;
    	for(int i=0;i<num;i++)
    	{
    		scanf("%s",idcard);
    		for(int j=0;j<17;j++)
    		{
    			check=(idcard[j]-'0')*weight[j]+check;
    		}
            if(idcard[17]!=check_bit[check%11])
    		{
                printf("%s
    ",idcard);
                k++;
    		}
    		check=0;
    	}
        if(k==0)
        {
            printf("All passed");
        }
    	return 0;
    }
    

    1036 跟奥巴马一起编程 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int row,line;
    	char sigh;
    	scanf("%d %c",&row,&sigh);
    	if(row%2==0)
    	{
    		line=row/2;
    	}
    	else
    	{
    		line=row/2+1;
    	}
    
    	for(int i=0;i<line;i++)
    	{
    		if(i==0||i==line-1)
    		{
    			for(int j=0;j<row;j++)
    			{
    				printf("%c",sigh);
    			}
    		}
    		else
    		{
    			for(int j=0;j<row;j++)
    			{
    				if(j==0||j==row-1)
    				{
    					printf("%c",sigh);
    				}
    				else
    				{
    					printf(" ");
    				}
    			}
    		}
    		printf("
    ");
    	}
    	return 0;
    }
    

    1041 考试座位号 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	typedef struct{
    		long long id;
    		int test_chair;
    		int real_chair;
    	} students;
    	students student[1000];
    	int num;
    	int search;
    	int search_chair;
    	int n=0;
    	scanf("%d",&num);
    	for(int i=0;i<num;i++)
    	{
    		scanf("%lld %d %d ",&student[i].id,&student[i].test_chair,&student[i].real_chair);
    	}
    	scanf("%d",&search);
    	for(int i=0;i<search;i++)
    	{
            scanf("%d",&search_chair);
    
    		for(int j=0;j<num;j++)
    		{
    			if(student[j].test_chair==search_chair)
    			{
    				printf("%lld %d
    ",student[j].id,student[j].real_chair);
    				break;
    			}
    		}
    	}
    	return 0;
    }
    

    1046 划拳 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int round,people1_say,people1_do,people2_say,people2_do,number;
    	int people1=0;
    	int people2=0;
    	scanf("%d",&round);
    	while(round!=0)
    	{	round--;
    		scanf("%d %d %d %d",&people1_say,&people1_do,&people2_say,&people2_do);
    		number=people1_say+people2_say;
    		if(number==people1_do&&number==people2_do)
    		{
    			continue;
    		}
    		if(number==people1_do)
    		{
    			people2++;
    		}
    		if(number==people2_do)
    		{
    			people1++;
    		}
    	}
    	printf("%d %d",people1,people2);
    	return 0;
    }
    

    1056 组合数的和 (15 分)

    #include<stdio.h>
    
    int main()
    {
    	int numbers[10];
    	int n;
    	int total=0;
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    	{
    		scanf("%d",&numbers[i]);
    	}
    	for(int i=0;i<n;i++)
    	{
    		total=total+numbers[i]*10*(n-1)+numbers[i]*(n-1);
    	}
    	printf("%d",total);
    	return 0;
    }
    

    1051 复数乘法 (15 分)

    #include<math.h>
    #include<stdio.h>
    
    int main()
    {
    	double R1,P1,R2,P2;
    	double realpart1,imapart1,realpart2,imapart2,realpart,imapart;
    	scanf("%lf %lf %lf %lf",&R1,&P1,&R2,&P2);
    	realpart1=R1*cos(P1);
    	imapart1=R1*sin(P1);
    	realpart2=R2*cos(P2);
    	imapart2=R2*sin(P2);
    	realpart=realpart1*realpart2-imapart1*imapart2;
    	imapart=imapart2*realpart1+imapart1*realpart2;
        if (realpart + 0.005 >= 0 && realpart < 0)
        {
            printf("0.00");
        }
        else
        {
            printf("%.2f", realpart);
        }
        if(imapart >= 0)
        {
            printf("+%.2fi", imapart);
        }
        else if (imapart + 0.005 >= 0 && imapart < 0)
        {
            printf("+0.00i");
        }
        else
        {
            printf("%.2fi", imapart);
        }
    	return 0;
    }
    
  • 相关阅读:
    377. Combination Sum IV
    字符串全排列,并去重。
    字符串全排列,并去重。
    智乐活,查找一片区域
    每日一题:华为初级题库——字符个数统计
    每日一题:华为初级题库——字符串替换
    总结菜鸟最近做题目的易错地方
    每日一题:华为初级题库——报数
    每日一题:华为初级题库——最大公约数
    每日一题:华为初级题库——图片整理
  • 原文地址:https://www.cnblogs.com/Qi-Lin/p/14622248.html
Copyright © 2020-2023  润新知