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

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

相关推荐
休息一下接着来5 分钟前
C++ 固定容量环形队列实现
c++·算法
im_AMBER37 分钟前
手撕hot100之矩阵!看完这篇就AC~
javascript·数据结构·线性代数·算法·leetcode·矩阵
笨笨饿43 分钟前
#79_NOP()嵌入式C语言中内联汇编宏的抽象封装模式研究
linux·c语言·网络·驱动开发·算法·硬件工程·个人开发
如君愿1 小时前
考研复习 Day 30 | 习题--计算机网络 第五章(运输层 上)、数据结构 图(上)
数据结构·计算机网络·课后习题
weixin_421725261 小时前
C语言中volatile关键字怎么用C语言volatile在多线程中的作用
c语言·数据结构·运算符优先级·变量命名·volatile关键字
星河耀银海1 小时前
C语言与数据库交互:SQLite实战与数据持久化
c语言·数据库·sqlite·交互
风萧萧19992 小时前
问答样例如何在RAG问答中使用?
算法
七夜zippoe2 小时前
DolphinDB分区策略:HASH分区与COMPO分区
算法·哈希算法·hash·dolphindb·compo
沪漂阿龙2 小时前
程序员面试技术爆款文:2026大厂算法通关手册——从零基础到LeetCode刷穿,这一篇就够了
算法·leetcode·面试
05候补工程师3 小时前
【408 从零到一】线性表逻辑特征、存储结构对比与 C/C++ 动态内存分配避坑指南
c语言·开发语言·数据结构·c++·考研