【PTA-C语言】实验四-循环结构II

  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    实验四-循环结构II

    • 7-1 跟奥巴马一起画方块(分数 15)
    • 7-2 打印九九口诀表(分数 10)
    • 7-3 求符合给定条件的整数集(分数 15)
    • 7-4 求特殊方程的正整数解(分数 15)
    • 7-5 不变初心数(分数 15)
    • 7-6 Wifi密码(分数 15)
    • 7-7 梅森数(分数 15)

7-1 跟奥巴马一起画方块(分数 15)

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。

输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

输入样例:

10 a

输出样例:

aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

参考代码

#include<stdio.h>
int fun(int n)
{double t = n*1.0/2;if(t+0.5>=(int)t+1.0)return (int)t+1;elsereturn (int)t;
}
int main()
{int n, i, j;char c;scanf("%d %c", &n, &c);int t = fun(n);for(i=0; i<t; i++) {for(j=0; j<n; j++)printf("%c", c);printf("\n");}return 0;
}

7-2 打印九九口诀表(分数 10)

下面是一个完整的下三角九九口诀表:

1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16  
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  

本题要求对任意给定的一位正整数N,输出从1*1N*N的部分口诀表。

输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。

输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例:

1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16  

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

参考代码

#include<stdio.h>
int main()
{int i, j, n;scanf("%d", &n);for(i=0; i<=n; i++)for(j=1; j<=i; j++) {printf("%d*%d=%-4d", j, i, i*j);if(i==j)printf("\n");}return 0;
}

7-3 求符合给定条件的整数集(分数 15)

给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

输入格式:
输入在一行中给出A。

输出格式:
输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

输入样例:

2

输出样例:

234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
参考代码

#include<stdio.h>
int main(){int n, i, j, k;int flag=0;scanf("%d",&n);for(i=n; i<=n+3; i++)for(j=n; j<=n+3; j++)for(k=n; j!=i && k<=n+3; k++)if(k!=i && k!=j) {if(flag==0) {printf("%d", i*100+j*10+k);flag++;} else if(flag==5) {printf(" %d\n", i*100+j*10+k);flag=0;} else {printf(" %d", i*100+j*10+k);flag++;}}return 0;
}

7-4 求特殊方程的正整数解(分数 15)

本题要求对任意给定的正整数N,求方程X2 + Y2 = N 的全部正整数解。

输入格式:
输入在一行中给出正整数N(≤10000)。

输出格式:
输出方程X2 + Y2 = N的全部正整数解,其中 X ≤ Y 。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution

输入样例1:

884

输出样例1:

10 28
20 22

输入样例2:

11

输出样例2:

No Solution

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

参考代码

#include<stdio.h>
int main()
{int x, y, n, flag = 0;scanf("%d", &n);for (x = 1; x <= 100; ++ x)for (y = x; y <= 100; ++ y)if (x*x + y*y == n) {printf("%d %d\n", x, y);flag = 1;}if (!flag)printf("No Solution\n");return 0;
}

7-5 不变初心数(分数 15)

不变初心数是指这样一种特别的数,它分别乘 2、3、4、5、6、7、8、9 时,所得乘积各位数之和却不变。例如 18 就是这样的数:18 的 2 倍是 36,3+6=9;18 的 3 倍是 54,5+4=9;…… 18 的 9 倍是 162,1+6+2=9。对于 18 而言,9 就是它的初心。本题要求你判断任一个给定的数是否有不变的初心。

输入格式:
输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一个不超过 105
的正整数。

输出格式:
对每个给定的数字,如果它有不变的初心,就在一行中输出它的初心;否则输出 NO

输入样例:

4
18
256
99792
88672

输出样例:

9
NO
36
NO

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

参考代码

#include <stdio.h>
int main(){int n, sum=0, i, t, j, a, f, c=0;scanf("%d", &n);for(i=0; i<n; i++) {scanf("%d", &a);t = a; sum = 0;while(t){sum += t%10;t /= 10;}f = sum; c = 0;for(j=2; j<=9; j++) {t = a*j;sum = 0;while(t){sum += t%10;t /= 10;}if(sum==f)c++;}if(c==8)printf("%d\n", f);elseprintf("NO\n");}return 0;
}

7-6 Wifi密码(分数 15)

下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。

在这里插入图片描述

输入格式:
输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行按照 编号-答案 的格式给出一道题的 4 个选项,T 表示正确选项,F 表示错误选项。选项间用空格分隔。

输出格式:
在一行中输出 wifi 密码。

输入样例:

8
A-T B-F C-F D-F
C-T B-F A-F D-F
A-F D-F C-F B-T
B-T A-F C-F D-F
B-F D-T A-F C-F
A-T C-F B-F D-F
D-T B-F C-F A-F
C-T A-F B-F D-F

输出样例:

13224143

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

参考代码

#include<stdio.h>
int main()
{int i, j, n;char a[n][15], b[n];scanf("%d", &n);getchar();for(i=0; i<n; i++)gets(a[i]);for(i=0; i<n; i++)for(j=2; j<15; j+=4)if(a[i][j] == 'T')b[i] = a[i][j-2];for(i=0; i<n; i++)if(b[i] == 'A')printf("1");else if(b[i] == 'B')printf("2");else if(b[i] == 'C')printf("3");elseprintf("4");return 0;
}

7-7 梅森数(分数 15)

形如2n − 1的素数称为梅森数(Mersenne Number)。例如22 −1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。

本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n − 1的梅森数。

输入格式:
输入在一行中给出正整数n(n<20)。

输出格式:
按从小到大的顺序输出所有不超过2n − 1的梅森数,每行一个。如果完全没有,则输出“None”。

输入样例:

6

输出样例:

3
7
31

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

参考代码

#include<stdio.h>
#include<math.h>
int main()
{int i, j, n, m=0, k=0, c=0;scanf("%d", &n);for(i=2; i<=n; i++, c=0) {m = pow(2, i)-1;for(j=2; j<=sqrt(m); j++)if(m%j==0) {c++;break;}if(c==0) {printf("%d\n", m);k++;}}if(!k) printf("None");return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AGI智能新时代,大模型为软件开发带来范式变革

导语 | 人工智能作为新一轮科技革命和产业变革的重要驱动力量&#xff0c;尤其是在当下新一轮 AI 大模型、生成式 AI 浪潮背景下&#xff0c;重视通用人工智能&#xff08;AGI&#xff09;成为行业的共识。在当前&#xff0c; AGI 技术背后的逻辑究竟是怎样的&#xff1f;技术创…

力扣二叉树--第三十六天

前言 两天没写题了&#xff0c;期末月&#xff0c;压力有点大&#xff0c;休息一下&#xff0c;释放一下压力。焦虑常在&#xff0c;调整好心态啊&#xff01;度过这一个月。写中序遍历的时候&#xff0c;发现自己竟然对树是怎么遍历的很模糊&#xff01;&#xff01;&#xf…

CF688A Opponents

Opponents 题面翻译 问题描述 小白有 n 个对手&#xff0c;他每天都要和这些对手PK。对于每一天&#xff0c;如果 n 个对手全部到齐&#xff0c;那么小白就输了一场&#xff0c;否则小白就赢了一场。特别的&#xff0c;如果某天一个对手都没有到&#xff0c;也算小白赢。现在…

杨志丰:OceanBase助力企业应对数据库转型深水区挑战

11 月 16 日&#xff0c;OceanBase 在北京顺利举办 2023 年度发布会&#xff0c;正式宣布&#xff1a;将持续践行“一体化”产品战略&#xff0c;为关键业务负载打造一体化数据库。OceanBase 产品总经理杨志丰发表了《助力企业应对数据库转型深水区挑战》主题演讲。 以下为演讲…

【代码】基于改进差分进化算法的微电网调度研究matlab

程序名称&#xff1a;基于改进差分进化算法的微电网调度研究 实现平台&#xff1a;matlab 代码简介&#xff1a;了进一步提升差分进化算法的优化性能,结合粒子群(PSO)算法的进化机制,提出一种混合多重随机变异粒子差分进化算法(DE-PSO)。所提算法不仅使用粒子群差分变异策略和…

7.C转python

1.对字典的各种操作都是对键来进行的 2.关于字典的遍历操作 例: 还可以这样遍历 所以生成了一个固定模版来遍历字典: 例: 那两个名字可以换 例: 3.合法key的类型: 要求可哈希 在python中,专门提供了一个hash()函数来计算哈希值 例: 有的类型是不能计算哈希的,如:列表,字…

深度学习与深度迁移学习有什么区别?

深度学习包含深度迁移学习&#xff0c;它们都利用了深层神经网络&#xff08;Deep Neural Network&#xff0c;DNN&#xff09;来处理数据&#xff0c;并从中学习特征。但是&#xff0c;它们也有一些区别。 深度学习是一种机器学习方法&#xff0c;它通过多层神经网络来自动学…

分享89个节日PPT,总有一款适合您

分享89个节日PPT&#xff0c;总有一款适合您 89个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1j6Yj-7UCcUyV4V_S_eGjpQ?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

编写高质量Python (第26条) 用 functools.wraps 定义函数装饰器

第26条 用 functools.wraps 定义函数装饰器 ​ Python 中有一个特殊写法&#xff0c;可以用装饰器来封装某个函数&#xff0c;从而让函数在执行这个函数之前与执行完这个函数之后&#xff0c;分别运行某些代码。这意味着&#xff0c;调用者传给参数的参数值、函数返回给调用者…

深度学习(四):pytorch搭建GAN(对抗网络)

1.GAN 生成对抗网络&#xff08;GAN&#xff09;是一种深度学习模型&#xff0c;由两个网络组成&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;。生成器负责生成假数据&#xff0c;而判别器则负责判断数据是真实的还是 f…

解决Linux的端口占用报错问题

文章目录 1 Linux报错2 解决方式 1 Linux报错 Port 6006 is in use. If a gradio.Blocks is running on the port, you can close() it or gradio.close_all(). 想起之前运行Gradio 6006&#xff0c;端口被占用 2 解决方式 输入 netstat -tpl查看当前一些端口号的占用号&a…

go第三方包发布(短精细)

1、清除其他依赖项 $ go mod tidy # 清除不必要的依赖依赖清除完成后&#xff0c;查看go.mod文件配置是否规范 module github.com/fyupeng/rpc-go-netty go 1.19 require ( )2、本地版本创建 $ git tag v0.1.0 # 本地 创建标签3、版本提交 $ git push github v0.1.0 # 推送…

Selector SelectionKey基础学习

netty技术内幕一(Selector,SelectionKey) Java Nio注意事项 # selector Selector类的使用(一) SelectionKey类的使用 /* package java.nio.channels;import java.io.Closeable; import java.io.IOException; import java.nio.channels.spi.SelectorProvider; import java.u…

面试就是这么简单,offer拿到手软(一)—— 常见非技术问题回答思路

面试系列&#xff1a; 面试就是这么简单&#xff0c;offer拿到手软&#xff08;一&#xff09;—— 常见非技术问题回答思路 面试就是这么简单&#xff0c;offer拿到手软&#xff08;二&#xff09;—— 常见65道非技术面试问题 文章目录 一、前言二、常见面试问题回答思路问…

cyclictest 交叉编译与使用

目录 使用版本问题编译 numactl编译 cyclictest使用参考 cyclictest 主要是用于测试系统延时&#xff0c;进而判断系统的实时性 使用版本 rt-tests-2.6.tar.gz numactl v2.0.16 问题 编译时&#xff0c;需要先编译 numactl &#xff0c;不然会有以下报错&#xff1a; arm-…

在 Linux 中使用 udev 规则固定摄像头节点

简介 通过编写 udev 规则来固定 USB 摄像头节点&#xff0c;以便在系统中始终使用相同的设备路径访问摄像头。 确定摄像头的供应商 ID 和产品 ID 使用 lsusb 命令确定连接的 USB 摄像头的供应商 ID 和产品 ID。示例命令及输出&#xff1a; $ lsusb Bus 001 Device 030: ID 220…

AI 绘画 | Stable Diffusion 电商模特

前言 上一篇文章讲到如何给人物更换背景和服装。今天主要讲电商模特,就是服装电商们的固定服装产品图片如何变成真人模特穿上的固定服装产品效果图。如果你掌握了 《AI 绘画 | Stable Diffusion 人物 换背景|换服装》,这篇文章对你来说,上手会更轻松。 教程 提取服装蒙版…

Java实现简单飞翔小鸟游戏

一、创建新项目 首先创建一个新的项目&#xff0c;并命名为飞翔的鸟。 其次在飞翔的鸟项目下创建一个名为images的文件夹用来存放游戏相关图片。 用到的图片如下&#xff1a;0~7&#xff1a; bg&#xff1a; column&#xff1a; gameover&#xff1a; ground&#xff1a; st…

记QListWidget中QPushButton QSS样式失效的“bug”

一、场景 有一个QListWidget的列表&#xff1b;里面存放了若干QListWidgetItem&#xff1b;每个QListWidgetItem与一个自定义类对象绑定——通过QListWidget的setItemWidget()实现。自定义对象继承于QWidget&#xff0c;且内含QPushButton。 二、bug描述 在该QListWidget的外…

Mybatis 分页查询的三种实现

Mybatis 分页查询 1. 直接在 sql 中使用 limit2. 使用 RowBounds3. 使用 Mybatis 提供的拦截器机制3.1 创建一个自定义拦截器类实现 Interceptor3.2 创建分页查询函数 与 sql3.3 编写拦截逻辑3.4 注册 PageInterceptor 到 Mybatis 拦截器链中3.5 测试 准备一个分页查询类 Data…