PTA函数作业

7-1 求组合数(15 分)

1.题目

本题要求编写程序,根据公式C?n?m??=?m!(n?m)!??n!??算出从n个不同元素中取出m个元素(m≤n)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double

输入格式:

输入在一行中给出两个正整数m和n(m≤n),以空格分隔。

输出格式:

按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

2.提交列表

3.设计思路(流程图)

定义变量和子函数,输入m,n,通过子函数求得新的y,m,n,最后由表达式输出结果。

子函数

代码如下

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

4.答案结果

7-3 求幂之和(15 分)

1.题目

本题要求编写程序,计算sum=2?1??+2?2??+2?3??+?+2?n??。可以调用pow函数求幂。

输入格式:

输入在一行中给出正整数n(≤10)。

输出格式:

按照格式“result = 计算结果”输出。

2.提交列表

3.设计思路(流程图)

定义变量和子函数,循环求和,并输出

子函数如下

代码如下

#include<stdio.h>
#include<math.h>
int fact(int i);
main()
{
int i,j,k,sum=0;
scanf("%d",&i);
for(j=1;j<=i;j++){
k=pow(2,j);
sum+=k;
}
printf("result = %d",sum);
}
int fact(int i)
{
int s;
s=pow(2,i);
return s;
}

4.答案结果

7-10 判断素数(10 分)

1.题目

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2?31??的需要判断的正整数。

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No

2.提交结果

3.设计思路(流程图)

先定义一个主函数,输入a值,循环选择判断是否是素数

子函数

代码如下

#include<stdio.h>
#include<math.h>
int main()
{
int judge(int n);
int a,n,i;
scanf("%d",&a);
for(i=0;i<a;i++){
scanf("%d",&n);
if(judge(n)){
printf("Yes\n");
}
else
printf("No\n");
}
}
int judge(int n){
int i;
if(n==1)
return 0;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return 1;
}

4.答案结果

二、同学互评

同学代码(7.3)

我的代码

我的代码相比较他的代码更加的简洁,思维简单清晰,两者的子函数表带形式不一样

都有各自的优缺点,我更喜欢自己的代码。

四、本周学习总结
  1.本周你学会了什么?
   1.本周学会如何简单的声明一个函数并且调用函数;
   2.还有return0和return1的用法
   3.知道了如何讲复杂的代码化为一个一个子函数代码 
  2.本周的内容,还有那些内容不会?
   1.在一些概念方面还是容易出错,并且不能够自己独立的很好的写出代码,属于模仿别人代码的阶段。

原文地址:https://www.cnblogs.com/scofieldying/p/8322465.html

时间: 2024-10-31 13:04:21

PTA函数作业的相关文章

二,pta函数作业

题目一:求组合数 pta提交列表: 设计思路: 设计思路:先定义一个子函数求阶乘,求出组合数输出 本题调试过程碰到问题及PTA提交列表情况说明. 没有定义子函数double,改为double后正确 题目二:求幂之和 pta提交列表: 设计思路: 设计思路:定义一个子函数求2幂,让i逐渐加一,用 子函数求2的小于n的所有次幂,每次循环时加起来 题目三:求n以内最大的k个素数以及它们的和 提交列表: 设计思路: 设计思路:先求出2到之间的所有素数,让a[0]等于每次 求出的最大素数,让a[y]=其后

c语言函数作业

一.PTA实验作业 6-3 使用函数判断完全平方数 1. 本题PTA提交列表 2. 设计思路 1.利用由题目给定的int IsSquare( int n )进行操作 2.首先判断n是否大于0. 3.若n>0,则根据函数n*1.0/sqrt(n)是否等于sqrt(n)来判断是否为完整数,符合则return 1,不符合则return 0. 4.若n=0,return 1. 5.若n<0,return 0. ###3.本题调试过程碰到问题及PTA提交列表情况说明 没有考虑n=0也是完整数而答案错误.

二.PTA函数实验

一.PTA实验作业(函数) 题目一:   1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决) 题目二: 1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的

函数作业

一.PTA实验作业 题目一  求组合数 1.本题的PTA提交列表 2.设计思路 1.主函数 1.输入m,n 2.result=fact(n)/(fact(m)*fact(n-m)) 3.输出result 2.fact(int num)函数 1.result=1 2.循环变量i从1到n,执行下述操作:result*=i 3.返回result 3.本题调试过程碰到问题及PTA提交列表情况说明. 1.格式匹配问题 由于输出是整型,而fact(n)要求函数的返回类型是double,所以输出会出错 输出的

PTA循环作业

---恢复内容开始--- 一.PTA实验作业 题目1:7-1 求交错序列前N项和 1.题目 提交列表: 2.设计思路(包括流程图) (1)先输入个正整数N,确定循环的次数 (2)观察题目中的各项式子的特点,推敲出每一项的代数式 (3)设计出需要的变量,建立循环求和 (4)输出和 3.调试的过程中遇到的问题 在写循环部分的代码中,对各个字母代表的意义没有弄清楚导致有时程序运算不出结果,经认真观察后找到了问题所在,是不够认真导致的. 题目2: 本题PTA提交列表 2.设计思路:(包括流程图) (1)

day25 map,filter,reduce 内置函数,作业

=====================作业一#用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sbname=['alex','wupeiqi','yuanhao']#######################################################def name_sb(x): return x+'_sb'#加 _sb 的函数res=map(name_sb,name)print(list(res))########################

五、PTA实验作业(结构体)

1.提交列表 2.设计思路就是设计一个类似于在数组里面求最低和最大数值的函数 最终代码如下: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef struct Node{ char s[35]; double price; }Node; bool cmp(Node a, Node b){ return a.price<b.price; } int

python\函数作业

----------------------作业一 # 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字# linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']# python=['dragon','钢弹','zhejiangF4','小虎比']## 问题一:得出既报名linux又报名python的学生列表# 问题二:得出只报名linux,而没有报名python的学生列表# 问题三:得出只报名python,而没有报名li

交换函数作业

#include<stdio.h>//定义头文件 int main()// 定义主函数 {int i,j;// 定义变量i,j int*p,*q; // 定义指针变量p,q void swap(int*a,int*b);// 声明交换函数 p=&i;// 将指针指向变量i q=&j;// 将指针指向变量j printf("请输入两个需要交换的数:\n");//打印"请输入两个需要交换的数"字样 scanf("%d,%d"