复习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;
}

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

相关推荐
hh随便起个名4 小时前
力扣二叉树的三种遍历
javascript·数据结构·算法·leetcode
Dingdangcat865 小时前
城市交通多目标检测系统:YOLO11-MAN-FasterCGLU算法优化与实战应用_3
算法·目标检测·目标跟踪
xie_pin_an5 小时前
深入浅出 C 语言数据结构:从线性表到二叉树的实战指南
c语言·数据结构·图论
tang&6 小时前
滑动窗口:双指针的优雅舞步,征服连续区间问题的利器
数据结构·算法·哈希算法·滑动窗口
拼命鼠鼠6 小时前
【算法】矩阵链乘法的动态规划算法
算法·矩阵·动态规划
LYFlied6 小时前
【每日算法】LeetCode 17. 电话号码的字母组合
前端·算法·leetcode·面试·职场和发展
式5166 小时前
线性代数(八)非齐次方程组的解的结构
线性代数·算法·机器学习
Nandeska7 小时前
2、数据库的索引与底层数据结构
数据结构·数据库
橘颂TA7 小时前
【剑斩OFFER】算法的暴力美学——翻转对
算法·排序算法·结构与算法
叠叠乐7 小时前
robot_state_publisher 参数
java·前端·算法