这个作业属于哪个课程 |
https://bbs.csdn.net/forums/csuft_swxy_C?category=0&typeId=17321 |
---|---|
这个作业要求在哪里 |
https://bbs.csdn.net/topics/603700627 |
这个作业的目标 | 对函数的应用及了解 |
学号 | 20218536 |
一、本周作业(总分40分)
1.1 完成PTA作业,并给出编程题完成截图,截图上有自己的学号及姓名标识(不是截图形式的计0分)(每题5分)
1.2 请给出本章学习总结(15分)
1 学习进度条(5分)
2 累积代码行和博客字数(5分)
3 学习内容总结和感悟(5分)
二、作业格式
1、PTA作业
1.1、统计各位数字之和是5的数
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数接口定义:
int is( int number );
void count_sum( int a, int b );
函数
is
判断
number
的各位数字之和是否等于5,是则返回1,否则返回0。
函数
count_sum
利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式
count = 满足条件的整数个数, sum = 这些整数的和
进行输出。题目保证0<
a
≤
b
≤10000。
裁判测试程序样例
:
#include <stdio.h>
int is( int number );
void count_sum( int a, int b );
int main()
{
int a, b;
scanf("%d %d", &a, &b);
if (is(a)) printf("%d is counted.\n", a);
if (is(b)) printf("%d is counted.\n", b);
count_sum(a, b);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
104 999
结尾无空行
输出样例:
104 is counted.
count = 15, sum = 3720
结尾无空行
1.1.1、贴图展示代码
1.1.2、数据处理
1、数据表达:int整型定义变量t,s,i
2、数据处理:使用两个函数,在函数中使用while if语句进行循环判断,满足题目要求。
1.1.3、PTA提交列表及说明
1.2 、使用函数输出水仙花数
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1
3
+5
3
+3
3
。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。
函数接口定义:
int narcissistic( int number );
void PrintN( int m, int n );
函数
narcissistic
判断
number
是否为水仙花数,是则返回1,否则返回0。
函数
PrintN
则打印开区间(
m
,
n
)内所有的水仙花数,每个数字占一行。题目保证100≤
m
≤
n
≤10000。
裁判测试程序样例:
#include <stdio.h>
int narcissistic( int number );
void PrintN( int m, int n );
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
PrintN(m, n);
if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
153 400
输出样例:
153 is a narcissistic number
370
371
1.2.1、贴图展示代码
1.2.2、数据处理
1、数据表达:int整型定义变量x,i,a,b,coumt,sum
2、数据处理:将number的值赋予x,对x进行循环判断,如果x不等于1为真,则进行循环得出该数的位数,再接着判断对x进行重新赋值,求各位数的N次幂,在求和判断结果是否等于它本身,接着使用另一个函数得出范围内水仙花数的个数并按从小到大的顺序。
1.2.3、PTA提交列表及说明
编译错误:编写PrintN过程中没有大写。
1.3 、使用函数验证哥德巴赫猜想
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
函数接口定义:
int prime( int p );
void Goldbach( int n );
其中函数
prime
当用户传入参数
p
为素数时返回1,否则返回0;函数
Goldbach
按照格式“
n
=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>
int prime( int p );
void Goldbach( int n );
int main()
{
int m, n, i, cnt;
scanf("%d %d", &m, &n);
if ( prime(m) != 0 ) printf("%d is a prime number\n", m);
if ( m < 6 ) m = 6;
if ( m%2 ) m++;
cnt = 0;
for( i=m; i<=n; i+=2 ) {
Goldbach(i);
cnt++;
if ( cnt%5 ) printf(", ");
else printf("\n");
}
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
89 100
结尾无空行
输出样例:
89 is a prime number
90=7+83, 92=3+89, 94=5+89, 96=7+89, 98=19+79
100=3+97,
结尾无空行
1.3.1、贴图展示代码
1.3.2、数据处理
1、数据表达:int整型定义变量max,i,j
2、数据处理:使用函数,接着对p进行判断,如果p小于等于1则输出return 0,然后将p的开次方的整型值赋给max,然后进行循环,判断在这几次计算中p是否能被整除,若能则输出return 0,否则输出return 1。再使用一次函数将大于等于6的素数用两个奇素数相加,及n=p+q其中p是最满足题目的最小奇素数。
1.3.3、PTA提交列表及说明
编译错误:编写过程中出现了细节性的编写错误
1.4 、使用函数求素数和
使用函数求素数和
prime(
p
), 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数
PrimeSum
返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。
函数接口定义:
在这里描述函数接口:
prime(p),返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和
裁判测试程序样例:
/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))
输入样例:
在这里给出一组输入。例如:
1 10
结尾无空行
输出样例:
在这里给出相应的输出。例如:
17
结尾无空行
1.4.1、贴图展示代码
1.4.2、数据处理
1、数据表达:int定义num
2、数据处理:对i进行范围取值,if判断num除以i求余,若余数为0则输出return False即不是素数,否则同时还要满足num不等于1才能输出return True即为素数,另一个函数则求出i范围在a到b+1内的所有素数之和。
1.4.3、PTA提交列表及说明
答案错误:return sum我编写成return 0了
2、学习总结
2.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
12/6-12/12 | 15h | 445 | 计算机网络的功能 ,域名和URL的区别 | 函数的使用 |
2.2 累积代码行和博客字数
2.3 学习感悟
通过本次的学习,我了解到了计算机中信息传输的过程,从物理层到数据链路层到网络层再到传输层最后到应用层,每层都有它们所具备的关键功能缺一不可,还讲到域名和URL的区别,域名是指网络上的数字型IP地址相对应的字符型地址,而URL是一个统一资源定位符,两者的关系也就是包含与被包含的关系。