【C | PTA】函数专项练习(三)

【C语言】【递归函数】递归实现指数函数 【C语言】【递归函数】递归实现指数函数题目描述输入输出样例输入样例输出带填充标签的C/C++原程序代码实现偷懒做法(你们都懂)正确做法 题目描述 本题要求实现一个计算xn(n>=0),计算结果用双精度double 输入 输入两个整数x,n 输出 计算结果 样例输入 2 3 样例输出 8 带填充标签的C/C++原程序 #include <stdio.h> do... 阅读详情

本文结合PTA专项练习带领读者掌握函数,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

6-1 使用函数输出指定范围内的完数

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。
函数接口定义:

int factorsum( int number );

void PrintPN( int m, int n );

其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。
裁判测试程序样例:

#include <stdio.h>


int factorsum( int number );

void PrintPN( int m, int n );

    

int main()

{

    int m, n;


    scanf("%d %d", &m, &n);

    if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);

    if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);

    PrintPN(m, n);


    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例1:

6 30

输出样例1:

6 is a perfect number
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

输入样例2:

7 25

输出样例2:

No perfect number

int factorsum( int number )
{
	int sum=0;
	for(int i=1;i<number;i++)
	{
		if(number%i==0)
		sum+=i;
	}
	
	if(sum==number)
	return sum;
	else
	return 0;
}

void PrintPN( int m, int n )
{
	int flag=1;
	//遍历每一个数
	for(int i=m;i<=n;i++)
	{
		//如果符合完数的条件
		if(factorsum(i))
		{
			flag=0;
			//先打印一
			printf("%d = 1",i);
			for(int j=2;j<i;j++)
			{
				if(i%j==0)
				printf(" + %d",j);
			}
			printf("\n");
		}
		
	}
	if(flag==1)
	printf("No perfect number");
}

6-2 递归实现指数函数

本题要求实现一个计算xn(n≥1)的函数。
函数接口定义:

double calc_pow( double x, int n );

函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。
裁判测试程序样例:

#include <stdio.h>


double calc_pow( double x, int n );


int main()

{

    double x;

    int n;


    scanf("%lf %d", &x, &n);

    printf("%.0f\n", calc_pow(x, n));


    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例:

2 3

输出样例:

8

double calc_pow( double x, int n )
{
	if(n==1)
	return x;
	else
	return x*calc_pow(x,n-1);
}

6-3 十进制转换二进制

分数 10
作者 C课程组
单位 浙江大学

本题要求实现一个函数,将非负整数n转换为二进制后输出。
函数接口定义:

void dectobin( int n );

函数dectobin应在一行中打印出二进制的n。建议用递归实现。
裁判测试程序样例:

#include <stdio.h>


void dectobin( int n );


int main()

{

    int n;

    

    scanf("%d", &n);

    dectobin(n);

    

    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

1010

void dectobin( int n )
{
	int a;
	if(n==0)printf("0");
	else if(n==1)printf("1");
	else
	{
		dectobin(n/2);
		a=n%2;
		printf("%d",a);
	}
	
}

6-4 空心的数字金字塔

本题要求实现一个函数,输出n行空心的数字金字塔。
函数接口定义:

void hollowPyramid( int n );

其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行空心的数字金字塔,请注意,最后一行的第一个数字前没有空格。
裁判测试程序样例:

#include <stdio.h>


void hollowPyramid ( int n );


int main()

{    

    int n;


    scanf("%d", &n);

    hollowPyramid ( n );


    return 0;

}


/* 你的代码将被嵌在这里 */

输入样例:

5

输出样例:

    1
   2 2
  3   3
 4     4
555555555
void hollowPyramid ( int n )
{//对前n-1行处理
	for(int i=1;i<=n-1;i++)
	{
		for(int j=n-i;j>=1;j--)
		{
			printf(" ");
		}
		
		printf("%d",i);
			
		
		//i为1不输出空格、i为2输出1个空格
		//i为3输出3个空格、i为4输出5个空格
		//所以是1为第二项,2为d的等差数列
		//故输出2*i-4+1个空格
		if(i>=2)
		{
			for(int k=2*i-4+1;k>=1;k--)
				printf(" ");
		}

		
		if(i-1!=0)
		printf("%d",i);
		printf("\n");
	}
	
	//对最后一行处理
	for(int i=1;i<2*n;i++)
	printf("%d",n);
}
6-4 因子之和通过指针变量间接传回主函数 (10分) 6-4 因子之和通过指针变量间接传回主函数 (10分) 编写一个函数fun,功能是计算给定整数n的所有因子(不包括1和自身)之和,和值通过指针变量间接传回主函数。 函数接口定义: void fun(int n,int *m); 其中 n 和 m 都是用户传入的参数。函数计算给定整数 n 的所有因子(不包括1和自身)之和,和值通过指针变量 m 间接传回主函数。 裁判测试程序样例: #include <stdio.h> void fun(int n,int m); int main() 阅读详情

相关推荐

PTA 浙大版《C语言程序设计(第3版)》题目集全套代码

PTA 浙大版《C语言程序设计(第3版)》题目集全套代码 Here is PTA网站地址 本文适合C语言初学者,风格轻松明快,语言简洁易懂。本文在实际 案例中插入知识点,因为C语言不是学会的,而是练会的。多做题, 多上手写代码才能早日晋级,离开新手村。 来吧!投入C语言的怀抱吧! 文章目录PTA 浙大版《C语言程序设计(第3版)》题目集全套代码前前言 怎样算是一个好的程序前言一、函数题1.练习5-1 求m到n之和2.找两个数中最大者二、编程题1.练习2-1 Programming in C is fun

Sophia_all的博客 8977

PTA 7-203 因子之和

PTA 7-203 因子之和

higgins_li的博客 2935

PTA练习系统显示error: redefinition of ‘main’编译错误解决方法+PTA网站验证码

笔者终于下定决心要提高代码能力,直击PAT时 没想到......一开始,就被一道求和题给噎住了....还是那么简单的题目 显示错误: 看了几遍程序,想不明白为什么出错 后细看提示,才明白这个题库的操作方法 就是:只需要补上 欠缺的代码 即可 所以 也许是这个原因,这道题的通过率才0.31 最后附上浙大PTA网站验证码(即书籍C语言程序设计第三版(高教出版社) 书...

wuyaxin 4万+

6-2 递归实现指数函数

本题要求实现一个计算xn(n≥1)的函数。 函数接口定义: double calc_pow( double x, int n ); 函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。 裁判测试程序样例: #include <stdio.h> double calc_pow( double x, int n ); int main() { double x; int n; scanf("%lf %d", &x,

wzy992981933的博客 1114

浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)

有一个B站号@李桥桉,很多年前讲过PTA里的一些题目的解法。近两年有好多同学反馈,需要读者码才能进行答题,不然只能免费注册、看题、编写代码,就是不能提交代码(大受震撼)。咱就是说,会不会是同学们找错页面了,有免费的不需要读者码的题目集啊。先来说打开PTA平台,哪些题目集是需要输入读者码的,哪些是免费练习不需要读者码的。

李桥桉的博客 1万+

PTA函数练习题 6-6 数字金字塔

PTA函数练习题 6-6 数字金字塔 估计大家都是从PTA过来的,因此题目不再赘述,直接上代码: #include <stdio.h> void pyramid(int n); int main(void) { int n; scanf("%d", &n); pyramid(n); return 0; } void pyramid(int n) { int i, j, k, flag; for (i = 1; i <= n

weixin_45566219的博客 1263

PTA:使用函数求素数和 (10分) (c语言)

本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。 函数接口定义: int prime( int p ); int PrimeSum( int m, int n ); 其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参...

空白的博客 1万+

【WUT】PTA 2022春-MOOC-练习题

数组 | 函数和指针 | 选择结构 | 顺序结构 | 循环结构

linked的博客 5806

【C | PTA】结构体专项练习

本文结合PTA专项练习带领读者掌握结构体,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 6995

(一篇即成功)Ubuntu下搭建qt环境和安装Qt Creator

只需一篇就成功搭建Ubuntu下的QT环境 你还在等什么

m0_73450461的博客 1万+

霍尔编码器 vs 磁编码器:如何为你的电机控制项目选择最佳传感器(附实战对比)

本文深入对比了霍尔编码器和磁编码器在电机控制项目中的应用,从技术原理、性能参数、成本效益到实际场景选择提供了全面分析。通过实验室测试和项目案例,帮助工程师根据精度、环境抗性和预算选择最佳传感器方案,特别适合机器人、伺服驱动等领域的开发者参考。

weixin_28312391的博客 352

【C/PTA】选择结构专项练习(额外)

本文结合PTA专项练习带领读者掌握选择结构,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 6108

SAP BTP ABAP environment 集成本地系统实践:Cloud Connector、Connectivity service 与隧道通信全解析

摘要: 随着ABAP开发者向云端扩展业务逻辑,如何安全访问企业内网SAP系统成为关键问题。本文基于SAP官方文档,解析通过Cloud Connector和Connectivity service实现云端ABAP环境与本地系统集成的方案。 架构上分为四个角色:ABAP环境、Connectivity服务、Cloud Connector和内网系统。Cloud Connector作为内网出口,通过TLS隧道主动连接云端,避免防火墙开放入站端口。Connectivity服务则作为子账户级“总机”,自动路由请求。 实施

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 312

【C | PTA】函数专项练习(二)

本文结合PTA专项练习带领读者掌握函数,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 7924

基于Python的军事装备信息爬虫实战:Scrapy+Playwright+智能反反爬技术

本文将详细介绍如何使用Python构建一个高效的军事装备信息爬虫系统。我们将从基础的HTTP请求开始,逐步深入到使用Scrapy框架、Playwright浏览器自动化以及最新的反反爬技术。文章包含完整的代码实现、性能优化策略以及数据处理方案,旨在为读者提供一个全面的军事信息爬取解决方案。关键词:Python爬虫、军事装备、Scrapy、Playwright、反反爬。

2201_76125261的博客 1155

UDPProbe UDP端口存活探测(发送特征包+响应分析)、UDP服务识别

qDebug() << "收到响应:" << ip.toString() << ":" << port << " 服务:" << serviceName << " 响应长度:" << response.size();qDebug() << "开始探测:" << targetIp << ":" << port << " 超时时间:" << timeout << "ms";qInfo() << "\n==================== UDP探测结果 ====================";

寒寒豆豆软件公司的博客 148

【C | PTA】函数专项练习(四)

本文结合PTA专项练习带领读者掌握函数,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 8494

AutoSAR系列讲解(深入篇)14.7-Mcal Adc配置(上)

详细讲解了ADC的各个配置项的作用

雪云飞星的博客 1万+

【C | PTA】指针专项练习(二)

本文结合PTA专项练习带领读者掌握指针,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 6591

带有HSE组件的S32系列芯片中各子系统如何依次启动?

仔细阐述了上电后各个子系统的启动顺序,并给出了详细的启动步骤流程图。

车载系统攻城狮 1702

【Segment Anything Model】三:SAM模型微调自定义数据集,更改混合提示方式:点,框,点框混合

1.微调SAM预备知识。

cvxiayixiao的博客 1万+

【C | PTA】函数专项练习(一)

本文结合PTA专项练习带领读者掌握函数,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

等风来 7436

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【C | PTA】指针专项练习(一)

函数fun的功能是在指针a所指向的一维数组中找出其中最大的数及其下标,下标存到指针b所指的变量里,函数返回最大值。函数fun的功能是:求两数平方根之和,作为函数值返回。输入第一行给出两个正整数m和n(1≤m,n≤6),再输入m行数据,每行n个整数,每个整数之间用空格分隔。函数求 a 指针和 b 指针所指的两个数的平方根之和,并返回和。将输入的任意两个4位正整数的后两位互换,例如输入1234和5678,交换之后输出1278和5634。函数的功能是删除指针 s 所指的字符串中的所有数字字符。

等风来 6220

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

pta平台c语言作业答案,C语言PTA平台习题与答案.pdf

C语言PTA平台习题与答案.pdfC 语言程序与设计 PTA 平台习题与答案 1 1 第二章 作业 1 .本题要求编写程序,输出一个短句“Welcome to You” include int main printfWelcome to Youn; return 0; .本题要求编写程序,计算华氏温度 100F 对应的摄氏温度。计算公式C5F32/9, 式中C表示摄氏温度,F表示华氏温度,输出数据...

weixin_31940835的博客 1万+

PTA—C语言练习题

复习C练习题 1-1:Hello World! 要求:编写程序,输出一个短句“Hello World"。 #include<stdio.h> int main(void){ printf("Hello World!"); return 0; } 1-2:温度转换 要求:本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。 输出格式:fahr = 150, celsius = 计算所

lcyiloveyou的博客 8544

PTA练习

@[PTA]综合练习答案 输入一个正整数repeat (repeat<10),做repeat次下列运算: 输入一个正整数n(n<10),输出n行数字金字塔。 输出时使用以下语句: printf(" "); printf("%d ", i); printf("\n"); 输入格式: 输入在第1行中给出1个正整数repeat(repeat<10) 接下来repeat行,每行给出一...

qq_45015119的博客 3437
上一篇: 【MySQL | TCP】宝塔面板结合内网穿透实现公网远程访问
下一篇: 【C | PTA】函数专项练习(四)
秋说
秋说 优质创作者: 编程框架、信息安全技术领域 优质创作者: 编程框架、信息安全技术领域
博客等级 码龄4年 3万+粉丝 1906原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值