PTA---寒假温故知新作业

news2025/2/24 7:50:45

在这里插入图片描述

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:PTA学校题集
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

文章目录

  • 前言
  • 7-101 十进制转二进制
  • 7-6 近似求PI
  • 7-30 求最大公约数
  • 7-35 求阶乘问题
  • 7-27 N阶楼梯上楼问题
  • 7-38 数字金字塔
  • 7-83 使用选择法将数组中的整数按由小到大排序
  • 7-42 *求最大公约数
  • 7-84 编写函数,完成一组学生C语言成绩的值的运算
  • 7-46 显示菱形
  • 7-48 求π的近似值
  • 7-50 汉诺(Hanoi)塔问题
  • 7-49 递归实现逆序输出整数
  • 7-108 完美的素数
  • 7-31 汉诺塔问题
  • 7-37 求100以内的素数
  • 7-1 求组合数
  • 7-2 素数对猜想
  • 7-13 判断素数
  • 7-6 近似求PI
  • 7-87 函数的递归调用
  • 7-19 函数-斐波那契数列
  • 7-26 乘法口诀表
  • 7-66 汉诺塔问题
  • 7-78 存款翻倍
  • 总结


前言

应要好同学要求更新一波寒假作业,所以咱就开始行动,帮助自己快乐他人(bushi)。


7-101 十进制转二进制

在这里插入图片描述

#include<iostream>

using namespace std;

int main()
{
    int n,i=0;
    int arr[40];
    while(~scanf("%d",&n))
    {
        if(n==0)
        {
            printf("0\n");
            continue;
        }
        while(n)
        {
            ++i;
            arr[i]=n%2;
            n/=2;
        }
        for(int j=i;j>0;j--) printf("%d",arr[j]);
        printf("\n");
        i=0;
    }
    return 0;
}

7-6 近似求PI

在这里插入图片描述

#include <stdio.h>

int main()
{
    double eps, sum=1, i, temp=1;
    scanf("%le", &eps);
    for(i=1; temp>eps; i++)
    {
        temp = temp*i/(2*i+1);
        sum += temp;
    }
    printf("PI = %.5f\n", 2*sum);

    return 0;
}

7-30 求最大公约数

在这里插入图片描述

#include<iostream>

using namespace std;

int gcd(int a,int b)//递归法--->辗转相除法
{
    if (b==0)
        return a;
    int r = a%b;
    return gcd(b,r);
}
int main()
{
    int n,m;
    cin>>n>>m;
    
    int ret=gcd(n,m);
    
    printf("%d\n",ret);
    
    return 0;
}

7-35 求阶乘问题

在这里插入图片描述

#include<iostream>

using namespace std;

int main()
{
    long long n;
    cin>>n;
    
    long long sum=1;
    
    for(long long i=n;i>1;--i) sum*=i;
    printf("%lld\n",sum);
    return 0;
}

7-27 N阶楼梯上楼问题

在这里插入图片描述

#include <iostream>

using namespace std;
int num[101];

void fib() 
{
    num[0] = 0;
    num[1] = 1;
    num[2] = 2;
    for (int i = 3; i <= 100; i++) 
    {
        num[i] = num[i-1] + num[i - 2];
    }
}

int main() 
{
    fib();
    int t;
    while(cin >> t) 
    {
        cout << num[t] << endl;
    }
    return 0;
}

7-38 数字金字塔

在这里插入图片描述

#include<stdio.h>

int main()
{
    printf("    1 \n");
    printf("   2 2 \n");
    printf("  3 3 3 \n");
    printf(" 4 4 4 4 \n");
    printf("5 5 5 5 5 \n");
    return 0;
}

7-83 使用选择法将数组中的整数按由小到大排序

在这里插入图片描述

#include<iostream>

using namespace std;

int arr[12];

void bulle_sort(int arr[],int n)
{
	int i=0;
	for(i=0;i<n-1;i++)
	{
		int j=0;
		for(j=0;j<n-i-1;j++)
		{
			if(arr[j]<arr[j+1])
			{
				int temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}
}

int main()
{
    for(int i=0;i<10;++i) scanf("%d",&arr[i]);
    
    bulle_sort(arr,10);
    
    for(int i=0;i<10;++i) printf("%5d",arr[i]);
    
    return 0;
}

7-42 *求最大公约数

在这里插入图片描述

#include<stdio.h>

long long gcd(long long a,long long b)//递归法--->辗转相除法
{
    if (b==0)
        return a;
    long long r = a%b;
    return gcd(b,r);
}

int main()
{
    long long n,m;
    scanf("%lld %lld",&n,&m);
    
    long long ret=gcd(n,m);
    
    if(ret<0)
    {
        ret=-1*ret;
        printf("%lld\n",ret);
    }
    else if(ret>0)
    {
        printf("%lld\n",ret);
    }
    else printf("1\n");
    return 0;
}

7-84 编写函数,完成一组学生C语言成绩的值的运算

在这里插入图片描述

#include <iostream>
using namespace std;

typedef long long ll;

const int N = 15; 

int n, dat[N], aver, minn = 1e7;

int main()
{
    for (int i=1; i<=10; i++) 
    {
        cin >> dat[i];
        aver += dat[i];
        minn = min(minn, dat[i]);
    }
    aver /= 10;
    printf("average=%d\nmin=%d", aver, minn);
    return 0;
}

7-46 显示菱形

在这里插入图片描述

#include<stdio.h>
int main() 
{
	int n;
	char c;
	scanf("%d %c",&n,&c);
	if(n<=0) printf("None");
	else if(n%2==0) printf("Error");
	else 
    {
		int m=n/2+1;

		int i,j,s;
		for(i=1; i<=m; i++) 
        {
			for(s=1; s<=m-i; s++)
				printf(" ");
			for(j=1; j<=2*i-1; j++)
				printf("%c",c);
			printf("\n");
		}

		for(i=1; i<m; i++) 
        {
			for(s=1; s<=i; s++)
				printf(" ");
			for(j=1; j<=n-2*i; j++)
				printf("%c",c);
			printf("\n");
		}
	}
	return 0;
}


7-48 求π的近似值

#include<stdio.h>
#include<math.h>
double funpi(double e);
int main()
{
	double pi,e;
	scanf("%lf",&e);
	pi=funpi(e);
	printf("pi = %lf",pi);
	return 0;
}
double funpi(double e)
{
	double x,sum=0;
	int n=1,flag=1;
	do{
	x=1.0*flag/n;
	sum=sum+x;
	flag=-flag;
	n=n+2;
	}while(fabs(x)>=e); //分号!!!
	return sum*4;
}

7-50 汉诺(Hanoi)塔问题

#include <iostream>
using namespace std;

void hanoi(int n, char a, char b, char c)
{
    if(n==0) return;
    hanoi(n-1, a, c, b);
    printf("%c-->%c\n", a, b);
    hanoi(n-1, c, b, a);
}
int main()
{
    int n;
    cin >> n;
    hanoi(n, 'a', 'b', 'c');
    return 0;
}

7-49 递归实现逆序输出整数

在这里插入图片描述

#include<stdio.h>
#include<string.h>

void reverse(char* arr,int l,int r)
{
    char tmp;
    while(l<r)
    {
        tmp=arr[l];
        arr[l]=arr[r];
        arr[r]=tmp;
        l++;
        r--;
    }
    return;
}

int main()
{
    char arr[100010];
    gets(arr);
    int len=strlen(arr);
    
    reverse(arr,0,len-1);
    
    printf("%s\n",arr);
    
    return 0;
    
}

7-108 完美的素数

#include <stdio.h>
int is_prime(int x)
{
    int i = 0;
    for (i = 2; i < x; i++)
    {
        if (x % i == 0)
        {
            return 0;
        }
    }
    return x;
}
int Sum(int x)
{
    if (x>9)
    {
        return Sum(x / 10)+x % 10;
    }
    return x % 10;
}
int main()
{
    int n = 0;
    while (scanf("%d", &n), n != 0)
    {
        int sum = Sum(n);
        if (n == is_prime(n) && sum==is_prime(sum))
        printf("%d\n", n);
    }
    return 0;
}

7-31 汉诺塔问题

# include<stdio.h>
 void move(char ch1[],char ch2[]); 
void tower(int n,char ch1[],char ch2[],char ch3[])
{
	if(n==1)
	{
		move(ch1,ch3);
	}
	else
	{
		tower(n-1,ch1,ch3,ch2);
		move(ch1,ch3);
		tower(n-1,ch2,ch1,ch3);
	}
 } 
 void move(char ch1[],char ch2[])
 {
 	printf("%s->%s\n",ch1,ch2);
 }
 int main()
 {
 	int n;
 	char ch1[100],ch2[100],ch3[100];
 	scanf("%d\n",&n);
 	scanf("%s\n%s\n%s",&ch1,&ch2,&ch3);
 	tower (n,ch1,ch2,ch3);
 	return 0;
 }

7-37 求100以内的素数

#include<stdio.h>
int main()
{
	int j,sum=0;
    for(int i=2;i<=100;++i)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0) break;
            else continue;
        }
        if(j==i)
        {
            printf("%6d",j);
            sum++;
            if(sum%10==0)
            {
                printf("\n");
                sum=0;
            }
        }
    }
    return 0;
}

7-1 求组合数

#include <stdio.h>
 
double fact(int n);
 
int main()
{
	int m, n;
	double result;
	scanf("%d %d", &m,&n);
	result = fact(n) / (fact(m)*fact(n-m));
	printf("result = %.0f", result);
	
	return 0;  
}
 
double fact(int n)
{
	double sum = 1;
	for(int i=1;i<=n;i++)
	{
		sum *= i;
	}
	return sum;
}
 
 

7-2 素数对猜想

#include <stdio.h>
int main() {
	int n, cnt = 0, a[100001] = { 0 };
	scanf("%d", &n);
	for (int i = 2; i * i < 100000; i++)
		for (int j = 2; j * i < 100000; j++) a[j * i] = 1;
	for (int i = 3; i + 2 <= n; i++) if (!a[i + 2] && !a[i]) cnt++;	//第一对符合的素数对为3,5,所以从3开始
	printf("%d", cnt);
	return 0;
}

7-13 判断素数

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i, j;
    long long x;
    scanf("%d", &n);
    while(n--)
    {
        scanf("%lld", &x);
        j = 1;
        for(i = 2; i <= sqrt(x); i++)
        {
            if(x % i == 0)
            {
                j = 0;
                break;
            }
        }
        if(x == 1 || j == 0)
            printf("No\n");
        else
            printf("Yes\n");
    }
    return 0;
}

7-6 近似求PI

#include <stdio.h>

int main()
{
    double eps, sum=1, i, temp=1;
    scanf("%le", &eps);
    for(i=1; temp>eps; i++)
    {
        temp = temp*i/(2*i+1);
        sum += temp;
    }
    printf("PI = %.5f\n", 2*sum);

    return 0;
}

7-87 函数的递归调用

int fun(int n)
{
	if (n == 0 || n == 1)
		return 1;
	else if (n > 0)
		return n * fun(n - 1);
 
}
int main()
{
	int n;
	scanf("%d", &n);
	if (n < 0)
		printf("给定的数<0,no value!no value!");
	else
		printf("%d!=%d", n, fun(n));
	return 0;
}

7-19 函数-斐波那契数列

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
	int n;
	long long a[61]; 		//记得是long long 不然不够
	double x;
	while(scanf("%d",&n)!=EOF){
		a[1]=1;
		a[2]=1;
		for(int i = 3;i < 61;i++){
			a[i] = a[i - 1] + a[i - 2];
		}
		x =(double)(a[n]);		//转换一下
		printf("%.0f\n",x);
	} 
	return 0;
}

7-26 乘法口诀表

#include<stdio.h>

int main() 
{
    int N;
    scanf("%d", &N);
    for (int i = 1; i <= N; i++) 
    {
        for (int j = 1; j <= i; j++) 
        {
            if(j!=i)
                printf("%dx%d=%2d ",j,i,i*j);
            else
                printf("%dx%d=%2d",j,i,i*j);
        }
        printf("\n");
    }

    return 0;
}

7-66 汉诺塔问题

#include<stdio.h>
void hanoi(int n,char a,char c,char b)
{
    if(n==1)
        printf("1: %c -> %c\n",a,c);
    else
    {
        hanoi(n-1,a,b,c);
        printf("%d: %c -> %c\n",n,a,c);
        hanoi(n-1,b,c,a);
    }
}
int main()
{
    int n;
    scanf("%d",&n);
    getchar();
    char a,b,c;
    scanf("%c %c %c",&a,&c,&b);
    hanoi(n,a,c,b);
}

7-78 存款翻倍

#include <stdio.h>
int main()
{
    double a,c=1;
    int b=0;
    scanf("%lf",&a);
    do
    {
        c=c*(1+(a/100));
        b++;
    } while (c<2);
    printf("%d",b);
}

总结

基础题目,多看题解。

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

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

相关文章

Python Fiddler最新抓包工具教学:快速获取公众号(pc客户端)公开数据

嗨害大家好鸭~ 我是小熊猫 之前的Fiddler版本过期了&#xff0c;现在再来补上一个小案例 源码资料电子书:点击此处跳转文末名片获取 开发环境 - python 3.8 运行代码 - pycharm 2021.2 辅助敲代码 - requests第三方模块 - Fiddler 汉化版 抓包的工具 - 微信PC端 如何抓包 配置…

Python 初学者进阶的九大技能

Python是一种很棒的语言&#xff0c;语法简单&#xff0c;无需在代码中搜索分号。对于初学者来说&#xff0c;Python是入门最简单的语言之一。 Python有大量的库支持&#xff0c;你还可以安装其他库来增加自己的编程经验。 学了一阵子之后&#xff0c;你可能会觉得&#xff1…

成功解决使用yum安装的php版本过低的问题

文章目录前言一. 问题复现二. 问题分析三. 问题解决&#xff1a;四. 重要补充1. yum-config-manager介绍2. yum-uitls介绍3. remi资源库的介绍总结前言 大家好&#xff0c;我是沐风晓月。 日常学习过程经常会遇到一些奇奇怪怪的问题&#xff0c;为了把每个问题记录下来&#…

2023Facebook该如何养号?Facebook防封指南了解一下!

Facebook是大多数跨境电商卖家主攻的社交媒体平台&#xff0c;但也经常会有卖家抱怨&#xff0c;Facebook账号又无缘无故地被封了。Facebook是公认的非常容易被封&#xff0c;而新开的账号&#xff0c;不仅会导致前期的积累化为乌有&#xff0c;同时新账号被封的可能性也更高。…

python基于融合SPD-Conv改进yolov5与原生yolov5模型实践路面裂痕裂缝检测

SPD-Conv源于2022年一篇专门针对于小目标和低分辨率图像研究提出来的新技术&#xff0c;可以用于目标检测任务&#xff0c;能够一定程度提升模型的检测效果&#xff0c;今天正好有时间就想基于SPD融合yolov5s模型来开发路面裂痕裂缝检测模型&#xff0c;同时与原生的yolov5s模型…

Jenkins配置和使用

Jenkins的使用过程:配置代码库,然后配置代码静态检查,配置编译,配置单元测试,部署测试环境部署,测试,部署staging环境,测试通过,部署product环境 常见插件: git docker k8s maven grandle join Copy artifact ssh访问模式master agent &#xff08;1&#xff09;安装J…

线性代数 - 期末复习

SDU 线性代数 - 期末复习&#xff08;无二次型部分&#xff09;第一章&#xff1a; 矩阵1. 矩阵概念2. 矩阵运算&#x1f499;1&#xff09;线性运算&#xff1a;1》加、减法&#xff1a;2》数乘&#x1f499;2&#xff09;乘法运算&#x1f499;3&#xff09;矩阵的转置3. 方阵…

什么是RTK基站?它的工作原理是什么

欢迎来到东用知识小课堂&#xff01;说到定位&#xff0c;相信大家一定不会觉得陌生。如今我们所处的信息时代&#xff0c;人人都有手机。每天&#xff0c;我们都会用到与地图和导航有关的APP。这些APP&#xff0c;就是基于定位技术的。说到定位技术呢&#xff0c;大家又肯定会…

行为型模式-解释器模式

1.概述 如上图&#xff0c;设计一个软件用来进行加减计算。我们第一想法就是使用工具类&#xff0c;提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int add(int a,int b){return a b; } //用于两个整数相加 public static int add(int a,int b,int c){…

OAuth2(三)

首先把项目在本地运行起来 注意redis的配置 在地址栏输入 自动跳断点 界面截图

.NET MAUI 开发电子木鱼(上)

本文介绍如何使用 .NET MAUI 开发一个电子木鱼应用。以实际的小应用开发为例&#xff0c;通过这个开发过程&#xff0c;介绍了其涉及的 .NET MAUI、Blazor、前端等相关知识点。文章涉及的应用已开源在 Github&#xff0c;大家可前往下载体验&#xff1a; https://github.com/sa…

[架构之路-99]:《软件架构设计:程序员向架构师转型必备》-9-确定关键性需求与决定系统架构的因素

第9章 确定关键性需求与决定系统架构的因素9.1 概念架构是什么9.1.1 概念架构是直指目标的设计思想、重大选择9.1.2 案例1&#xff1a;汽车电子AUTOSAR——跨平台复用NA9.1.3 案例2&#xff1a;腾讯QQvideo架构——高性能NA9.1.4 案例3&#xff1a;微软MFC架构——简化开发NA9.…

断网后,是否能够ping通127.0.0.1?

引言 说起这个问题很搞笑&#xff0c;其实也是挺有意思的。是这么回事&#xff0c;公司突然断网了&#xff0c;有人突然来了一句&#xff0c;断网了&#xff0c;能不能ping通127.0.0.1呢&#xff1f;大家就实验起来了&#xff01; 结果显而易见&#xff0c;如上图&#xff0c;…

什么时候可以不进行测试?

如果存在任何原因导致不需要使用测试结果提供的信息&#xff0c;就没有必要进行测试。测试得到的信息不可靠&#xff0c;也没有必要测试。 1、测试后风险增加 软件行业的经理经常需要做出带风险的决定&#xff0c;通常在获得部分信息的情况下做出决定是比较保险的。但有些时候…

沿着数字中国的大江大河,领略云上三峡

长年以来&#xff0c;提到沿江旅行&#xff0c;国人脑海中浮现的画面一定是三峡。而在今天&#xff0c;沿着数字中国的大江大河溯源而上&#xff0c;也会看到一座云上三峡。郦道元在《水经注》里是这样描写三峡的“至于夏水襄陵&#xff0c;沿溯阻绝。有时朝发白帝&#xff0c;…

Docker - 11. 本地镜像发布到私有库

1. 为什么要有私有库&#xff1f; 如果涉及到公司机密文件&#xff0c;使用DockerHub、阿里云这样的公共镜像仓库就不合适&#xff0c;所以需要创建一个本地私人仓库提供给团队使用&#xff0c;基于公司内部项目构建镜像。而 Docker Registry是官方提供的工具&#xff0c;可以…

【技术应用】java实现排行榜方案

【技术应用】java实现排行榜方案一、前言二、实现方案方案一、通过数据库实现方案二、通过集合List实现数据排序功能方案三、通过redis的zset实现方案四、通过java中的sortedSet集合实现方案五、通过java的priorityQueue队列实现一、前言 最近在做一个项目的性能优化&#xff…

12、获取字符串信息

目录 一、获取字符串长度 二、字符串查找 &#xff08;1&#xff09;indexOf(String s) &#xff08;2&#xff09;lastIndexOf(String str) 三、获取指定索引位置的字符 一、获取字符串长度 使用String类的length()方法可获取声明的字符串对象的长度。 语法如下&#x…

Linux Centos9 Stream 安装mysql8

安装mysql8教程前言安装Mysql8.0使用Mysql yum 存储库进行安装。安装mysql8.0启动mysql 服务创建用户完成安装使用Navicat 连接刚装好的mysql如果博主的文章对您有所帮助&#xff0c;可以评论、点赞、收藏&#xff0c;支持一下博主!!!前言 操作系统&#xff1a;Linux Centos9 …

JAVA-Spring Bean作用域

目录 基本概念 Bean 作用域 spring支持的bean作用域有哪些&#xff1f; 近日研究Spring和SpringBoot的一些内容&#xff0c;给大家做一些分享&#xff0c;请大家多多提出您的宝贵意见。 学习知识要了解其涉及到的基本概念&#xff0c;才能理解这个知识&#xff0c;并且做到…