〇、前言
- 学姐纯粹是为爱发电,整理不易。所以小可爱们动动小手,点个免费的赞吧~
- 以防找不到本文,收藏本文也完全不吃亏哟~
一、题目列表
链接指路:
1. 1287: 怎么借书
2. 1288: 素数
二、题目与题解
(一)1287: 怎么借书
题目描述
小明有n本书,他的好朋友小红、小新、小林想向小明借书,若每人只能借一本书,可以有多少种不同的借法?
输入
一个整数n,代表书的序号为1、2、……、n.
输出
用A,B,C分别代表三个好朋友
依次输出每个人可借的书序号
以及有效的借阅方法总数
样例输入
3
样例输出
A:1 B:2 C:3
A:1 B:3 C:2
A:2 B:1 C:3
A:2 B:3 C:1
A:3 B:1 C:2
A:3 B:2 C:1
6
分析
考察了条件语句、循环语句的使用。因为只有3个好朋友,所以可以直接用三重for循环通过遍历每一种情况来解题;如果是更多的朋友,那么用单纯的循环暴力方法可能就会超时。
遍历时只要让三个好朋友不是借的同一本书序号就可以,所以条件语句里面的条件应该是三个人借的书序号不相同。
本题输出不用换行符,否则会PE。
题解
#include<stdio.h>
int main()
{
int n,i,j,t; //i,j,t 分别代表小红、小新、小林借的书的书序号
int c=0; //计数器:记录有几种借书的情况
scanf("%d",&n); //输入小明有几本书
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
for(t=1;t<=n;t++)
{
if(i != j && i != t && j != t ) //小红、小新、小林借的书的书序号不相同
{
printf("A:%d B:%d C:%d\n",i,j,t);
c++;
}
}
}
}
printf("%d",c);
return 0;
}
运行结果
(二)1288: 素数
题目描述
输出n1到n2之间的素数。
输入
两个整数n1,n2
输出
n1,n2之间所有的素数
每5个数输出为一行
分析
素数是大于1,而且只能被1或它本身整除的数字。按照这个特性来写程序就行。
样例输入
20 100
样例输出
23 29 31 37 41
43 47 53 59 61
67 71 73 79 83
89 97
题解
#include<stdio.h>
int main(void)
{
int a,b,i,j,c=0;
scanf("%d%d",&a,&b);
for(i=a; i<=b; i++)
{
for(j=2; j<=i; j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
c++;
printf("%d ",i);
if(c%5==0)
{
printf("\n");
}
}
}
return 0;
}
运行结果
三、后言
- 目前分享的这些资料仅仅为个人学习参考所用,有代码虽好,但也不要在你的作业里面直接抄袭,请根据自己的思考加以修改为好!!!
- 文章或许会有变动,以最新一版为准。
- 因为是课上了很久再整理的,所以很多细节记不太清楚了,有错漏之处还望不吝指正。
- 因为课程更新换代,可能题目内容有所不同,请小伙伴们看清楚再下手。
- 部分内容是不完整的,如果有互助人愿意和我一起完善文档,也十分欢迎!!
其他文章推荐:
【SWUST Online Judge】C语言《程序设计基础实验》实验一(613、614题)
【SWUST Online Judge】C语言程序设计作业一(1283、1284题)