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

您所在的位置:网站首页 pta题目以及答案函数 【C/PTA】函数专项练习(三)

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

2024-02-18 15:45| 来源: 网络整理| 查看: 265

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

目录 6-1 使用函数输出指定范围内的完数6-2 递归实现指数函数6-3 十进制转换二进制6-4 空心的数字金字塔

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

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0 int sum=0; for(int i=1;i int flag=1; //遍历每一个数 for(int i=m;i flag=0; //先打印一 printf("%d = 1",i); for(int j=2;j 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 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 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 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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3