1.PTA实验作业
1.1 题目名1
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include <stdio.h>
#include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
105 500
输出样例:
cnt = 6
1.1.1数据处理
数据表达:用了n,i,b,a[],m两个变量,i的值是通过不断循环加1得到,n的值是N的值,m的平方数是N,a[]是一个数组,都是整型变量。
数据处理:
伪代码:
int b,a[10]←{0},m←sqrt(N),i,n←N; /*定义五个变量i,n,b,a[10],m*/
IF m*m=n THEN /*判断n是否是完全平方数*/
do while n /*在循环里判断平方数是否至少有两位数字相同*/
do b←n%10
a[b]←a[b]+1
n←n/10
for i←0 to 9
do IF a[i]>1 THEN /*通过数组判断相同数的个数*/
do return 1
return 0
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
105 500 |
cnt = 6 |
与题目输出样例一样,正确 |
40 600 |
cnt = 7 |
随机取数,检验代码是否正确 |
209 579 |
cnt = 4 |
随机取数,检验代码是否正确 |
1.1.4 PTA提交列表及说明
1.答案错误:把b=n%10中的n打成了N,改正过来后正确了
2.答案正确。
1.2 题目2
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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.2.1 数据处理
数据表达:用了number,count,sum,a,b五个变量;a,b的值是通过输入得到;number的值代表a,b的值;count的值是通过for循环得到;sum是通过循环和式子sum+=a得到的;都是整型变量
伪代码:
int number;
IF number%10+(number/10)%10+(number/100)%10+(number/1000)%10=5 THEN /*判断给定正整数的各位数字之和是否等于5*/
do return 1
else
return 0
int a,b,count←0,sum←0;
for a←a to b /*统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和*/
do IF is(a)=1 THEN
do count←count+1
sum←sum+a
printf("count ← %d, sum ← %d",count,sum);
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
104 999 |
|
与题目输出样例一样,正确 |
672 8092 |
|
取1-10000之间的数,输入的数各位数之和不等于5 |
500 398 |
|
a>b,不符合题意 |
1.2.4 PTA提交列表及说明
1.答案正确。通过number%10+(number/10)%10+(number/100)%10+(number/1000)%10把正整数分成个位数相加判断是否之和等于5,用for循环得出count,sum。
2.代码互评
同学代码截图1 |
自己代码截图 |
|
|
同学1在判断给定正整数的各位数字之和是否等于5时用了while循环和if语句判断,while循环中通过k=n%10,n/=10,h=k+h把n中的数分成个位数,然后相加在if语句里面判断。我只用了一个if语句判断,条件是number%10+(number/10)%10+(number/100)%10+(number/1000)%10==5,满足了就可以进行下一步了。
同学2的代码没有用数组,先用if-else语句判断N的正负,然后在else语句里面嵌套了if语句,用来判断N是否是完全平方数,又用了for循环,while循环判断N是否至少有两位数字相同。同学2的代码比较长,不过没有用数组,易懂些。
3.学习总结
3.1 学习进度条
周/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较迷惑的问题 |
第15周/12.7 |
一天 |
131 |
自定义函数,局部变量,全局变量,变量生存周期,静态局部变量 |
数组使用起来不知道什么意思 |
第14周/11.29 |
两天 |
130 |
读代码 |
continue语句怎么使用 |
第13周/11.22 |
两天 |
99 |
循环嵌套,break语句,continue语句 |
伪代码的正确示范?打代码时什么时候要空格,什么时候不要 |
第12周/11.14 |
两天 |
107 |
whlie语句,do-whlie语句的使用方法,伪代码 |
不太清楚字符型的使用方法 |
第11周/11.9 |
一天 |
137 |
switch语句 |
scanf语句在int后面和在for或其他语句后面有什么区别吗 |
第10周/11.4 |
一天 |
112 |
if语句的嵌套,字符型,逻辑运算符 |
怎么活用已学知识点做PTA |
第9周/10.25 |
一天半 |
88 |
函数的定义,调用 |
“/=”是什么意思 |
第8周/10.18 |
两天左右 |
84 |
循环结构,for语句 |
在Dev-C++里面正确的代码到PTA上是答案错误怎么解决 |
第7周/10.8-10.12 |
两天左右 |
49 |
scanf()函数,if-else语句,常用的数学函数,关系运算符... |
PTA作业怎么能好好的做完! |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
这次写函数题的时候我都在想我之前是怎么做的,感觉有点模糊,但后面做了后又觉得我会做。不能那么早就被吓到了。读清题意,捋清思绪。虽然我有的是问同学的,哈哈。不过编程题我没怎么挑战,等有时候在做了。在写PTA前看了有关数组的知识,以为差不多懂了,可是用的时候,就懵逼了。还是要多实践的好!
最新文章
- C语言 独木舟问题
- Xcode计算缓存文件大小和清除缓存
- $().index() 两种用法
- babel安装
- (转)ReSharper 配置及用法
- WCF 生产json对外的接口
- 【转】MUD教程--巫师入门教程4
- rsync服务器
- 【Beta阶段】测试与发布
- JavaScript--我发现,原来你是这样的JS(引用类型不简单,且听我娓娓道来)
- docker保存日志文件到本地
- Maven+Spirng+Mybatis+CXF搭建WebService服务
- Bash On Windows上安装JDK
- Word中类似正则匹配的查找替换通配符的使用详解
- (zhuan) Attention in Long Short-Term Memory Recurrent Neural Networks
- 2018蓝桥杯 全球变暖(dfs)
- zabbix3.0配置服务器流量告警
- 【树莓派】树莓派Android相关资料
- javascript基础拾遗(十一)
- Linux+Redis实战教程_day02_消息订阅与发布_多数据库_redis批量操作-事务_redis持久化
热门文章
- mac使用brew安装mysql报RROR 2002 (HY000): Can&#39;t connect to local MySQL server through socket &#39;/tmp/mysql.sock&#39; (2)
- codeforces555E
- [转载]作为理工科学生,我们为什么要练就好的文笔?我们需要发blog来记录学习历程?
- jQuery属性操作之DOM属性操作
- 说说如何使用unity Vs来进行断点调试
- 计算可迭代对象的shape 老是忘~方便记法
- docker部署TX-LCN5.0.2
- Qt控制台输出QString
- YOLO: You Only Look Once论文阅读摘要
- ubuntu如何删除刚添加的源?