这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里
我在这个课程的目标是 能够熟悉掌握所学编程语言并在做作业的过程中熟悉语法
这个作业在那个具体方面帮助我实现目标 写博客的过程中回顾做作业的过程巩固所学知识
参考文献 百度百科,学长的帮助

1.PTA实验作业

1.PTA实验作业

1.1 题目名

1.1.1数据处理

数据表达:
定义int类型变量sum和字符字符型变量N。sum用来累计二进制转化为的十进制,N用来按位输入并判断是否为二进制数


数据处理:
{
定义int变量sum=0
定义字符型变量N='0'
当N不等于\n时
{
输入字符N
如果N为\n跳出循环
如果N为1或0则执行sum=sum*2+N-'0'
否则输出error input!
}
}
输出sum


1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
111 7 测试较小二进制数
11111111 255 按照题目要求测试二进制数
34 error input! 测试不是二进制的数

1.1.4 PTA提交列表及说明


说明:首先要考虑的是如何判断输入的数为二进制数,我一开始使用的方法是用int类型的N然后用%的方式逐步判断,这种方法在输入数据较小时可以使用,但是int的范围很小,一旦超出范围就会变成奇奇怪怪的值,于是就改成了long int和long long int,但是范围依然不够,于是在室友的提醒下改用了字符型的N,输入字符是“%c”,字符串是“%s”,如果输入的是字符串但是用的却是“%c”的话就会在循环体中一位一位的输入,这样就可以达到按位判断的目的。接下来是二进制转十进制,十进制转二进制的一种方法是用二去除然后看余出来的数字,在这里转换的方法也就是倒过来,二进制的位数实际上就是余出来的数,只要把余出来的数乘二再加上下一位二进制数一或是零就可以把它转化为原来的十进制数。

1.

2.

1.2 题目名

1.1.1数据处理

数据表达:
定义了int型变量o,S,r,i。o用来存放计算出的光棍,S用来输入题目要求的数,r用来存放o%S得到的数,i用来对光棍计数。


数据处理:
{
定义int型变量o=1,S,b=0,i=0,r=1。
输入S
当o<s时
{
计算o的最小值并且i记录o的光棍数
}
当r不等于0的时候
{
r为o%S,输出o/S的值
{
如果r为零就跳出循环
}
{
否则o就会增加光棍数并且i也会计数
}
}
输出i+1
}


1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
31 3584229390681 15 按题目要求测试
999 11122233344455566677788 27 测试最大数
11 1 2 测试输入数为光棍数

1.1.4 PTA提交列表及说明


说明:不知道为啥找不到我的提交,于是在全部提交里找到了正确的那一次,但是我还是会把做题时出现的问题一并说出来。一开始我想的还是用一个变量来存放光棍,但是之后还是出现了数据溢出存放不下的情况,改成double类型后却发现在光棍增加到15位的时候就会莫名其妙的丢失精度,在苦试无果之后又经过室友的提醒改变了整体的思路,用模拟除法运算的方法避开储存数据直接按位一步一步的输出了目标值。

1.

2.

2.代码互评

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
8/11.6 四天 550左右 while语句 关于各种数据的极限还是不太熟练

3.2累计代码行和博客字数

时间 博客字数 代码行数
第一周 547 388
第二周 897 418
第三周 1017 426
第四周 834 279
第五周 1215 486
第六周 808 493
第七周 871 514
第八周 1238 550

3.3学习感悟

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

这次的PTA花费了我巨量的时间,这次的题目不是难在逻辑运或是语法不会,而是对数据不够了解,遇到什么题都是想着直来直往的输出答案,而没有考虑其他更加奇妙的办法比如说避开存储大数据一位一位的输出,这样不仅能够节省空间还能降低运行的复杂程度,所以在以后的学习中我需要学的不仅仅是编程的语法,还有思考问题的方式,要想着怎样才能更巧妙的解决问题。

posted on 2019-11-16 09:49  NEKOMIYA  阅读(185)  评论(0编辑  收藏  举报