复习c语言考试-xtu

oj 1255

cpp 复制代码
#include<stdio.h>
#include<stdbool.h>

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		int a,b;
		scanf("%d%d",&a,&b);
		
		a=a*a;
		b=b*b;
		
		bool flag=false;
		for(int i=1;i<=15000;i++)
		{
			if(i*i==a+b||a==i*i+b||b==i*i+a)
			{
				printf("%d\n",i);
				flag=true;
				break;
			}
		}
		if(!flag)	puts("None");
	}
	
	return 0;
}

1075

cpp 复制代码
#include<stdio.h>

int gcd(int a,int b)
{
	return b>0?gcd(b,a%b):a;
}

int ans(int a,int b)
{
	int res=a*b/gcd(a,b);
	return res;
}

int main()
{
	int a,b;
	while(~scanf("%d%d",&a,&b))
	{
		if(a==0&&b==0)	break;
		
		printf("%d\n",ans(a,b));	
	}
	
	return 0;
}

1088

很奇怪,WA了一次,代码如下

cpp 复制代码
#include<stdio.h>

#define N 10007

int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		if(n==-1)	break;
		
		int ans=n;
		for(int i=n-1;i>=1;i--)
		{
			ans*=i;
			ans%=N;
		}
		
		printf("%d\n",ans);
	}
	
	return 0;
}

改成这样就可以了,但是我没懂其中的逻辑关系,看了一下也没有超过int 的数据范围,是一边计算一边取模的

cpp 复制代码
#include<stdio.h>

#define N 10007

int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        if(n==-1)    break;
        
        int ans=1;
        for(int i=1;i<=n;i++)
        {
            ans*=i;
            ans%=N;
        }
        
        printf("%d\n",ans);
    }
    
    return 0;
}

所以尽可能从小的开始算么,但是感觉是一样的,不懂

1078

cpp 复制代码
#include<stdio.h>

int main()
{
	char s[2];
	int cnt=0;
	while(~scanf("%s",s))
	{
		if(s[0]=='#')	break;
		
		printf("case %d:\n",++cnt);
		
		int num=s[0]-'A';
		int temp=num;
		for(int j=0;j<=num;j++)
		{
			for(int k=0;k<j;k++)	printf(" ");
			for(int i=0;i<=temp;i++)
			{
				printf("%c",i+'A');
			}
			for(int i=temp-1;i>=0;i--)
			{
				printf("%c",i+'A');
			}
			printf("\n");
			temp-=1;
			//printf("%d\n",temp);
		}
	}
	
	return 0;
}

非常激动,因为之前确实做不出来,但是今天,虽然还是本能的害怕,但是确实写出来了哈哈

1137

cpp 复制代码
#include<stdio.h>

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		char s[2];
		scanf("%s",s);
		
		int num=s[0]-'A';
		
		for(int i=0;i<=num;i++)
		{
			for(int j=0;j<=num;j++)	printf(" ");
			printf("%c\n",i+'A');
			
			for(int j=0;j<num-i;j++)	printf(" ");
			for(int j=0;j<2*i+3;j++)	printf("%c",i+'A');
			
			printf("\n");
		}
	}
	
	return 0;
}

激动啊,以前这题也写不出来的

相关推荐
??tobenewyorker14 分钟前
力扣打卡第23天 二叉搜索树中的众数
数据结构·算法·leetcode
贝塔西塔31 分钟前
一文读懂动态规划:多种经典问题和思路
算法·leetcode·动态规划
众链网络1 小时前
AI进化论08:机器学习的崛起——数据和算法的“二人转”,AI“闷声发大财”
人工智能·算法·机器学习
1 小时前
Unity开发中常用的洗牌算法
java·算法·unity·游戏引擎·游戏开发
飒飒真编程3 小时前
C++类模板继承部分知识及测试代码
开发语言·c++·算法
GeminiGlory3 小时前
算法练习6-大数乘法(高精度乘法)
算法
熬了夜的程序员3 小时前
【华为机试】HJ61 放苹果
算法·华为·面试·golang
森焱森3 小时前
一文理解锂电池充电、过放修复与电量测量:从原理到实战
c语言·单片机·架构
马特说3 小时前
基于随机森林的金融时间序列预测系统:从数据处理到实时预测的完整流水线
算法·随机森林·金融
呆呆的小鳄鱼3 小时前
leetcode:HJ18 识别有效的IP地址和掩码并进行分类统计[华为机考][字符串]
算法·leetcode·华为