第一次发博客,好紧脏!
2017-10-17 19:34
141 查看
我要被自己菜哭了,大概从下午15点左右吧开始写PAT的1010题。然鹅,很快的写好(= = 其实也不快),结果也和输出样例的一样。但是!!测试点2、4没通过啊没通过啊!所以我就一直调啊调啊调啊。最终弄了将近4个小时,(期间有参考了网上的思路),终于好了。没办法,我真的太菜了。以前欠的代码总是要还的=。=
想着自己都那么菜了,就不要挂代码出来了。但是还是想记录一下菜鸡的成长道路。毕竟,要坚强的菜下去。
[b]version-1[/b]
一开始的思路是:将输入的系数与指数模拟求导,若求导前不是常数,那么将求导后的结果存入数组内;反之,舍弃。下一步则是简单的输出。
但我发现while里有毛病。因为输出时需要跳出while循环的,按我的写法,只有当
[b]version-2[/b]
改正之后,发现测试2、4过了,0、1、3又不给过啦。emmm…这里就想了好久,为此还去看了一元多项式的定义T^T (菜哭!!)。实在不行了就去百度了,想知道其他人的思路、想法是啥。然后就看到了
4000
对了!想分享一下,其他人的写法。很简单的噢。要像他学习!
来源:http://linest.github.io/blog/2013/04/13/1/
总结:不要看只有version-1&2,但是调试的过程中的感觉只有自己知道。以前练习少,没有碰到这样的情况,本来挺简单的东西花了那么多时间。唔,还是要加油写代码啦~希望今天的错误与疏忽以后就不要再犯啦。
想着自己都那么菜了,就不要挂代码出来了。但是还是想记录一下菜鸡的成长道路。毕竟,要坚强的菜下去。
[b]version-1[/b]
一开始的思路是:将输入的系数与指数模拟求导,若求导前不是常数,那么将求导后的结果存入数组内;反之,舍弃。下一步则是简单的输出。
#include <stdio.h> #define N 80 int main() { int i = 0; int a ,j; int exp,coe; while ( scanf("%d %d",&coe,&exp) != EOF ) { coe = exp * coe; exp -= 1; if ( exp == -1 ) break; else { a[i] = coe; a[i+1] = exp; i += 2; } } for ( j = 0 ; j < i - 1 ; j++ ) { printf("%d ",a[j]); } printf("%d",a[i-1]); return 0; }
但我发现while里有毛病。因为输出时需要跳出while循环的,按我的写法,只有当
exp = -1时才会跳循环。而输入样例:
3 4 -5 2 6 1 -2 0中有常数
-2,在本例中可以正常输出。但是
3 4 -5 2就不行,所以我就改了。想着判断最后一个字符是不是换行的
\n,true的话就说明输入结束啦。
[b]version-2[/b]
改正之后,发现测试2、4过了,0、1、3又不给过啦。emmm…这里就想了好久,为此还去看了一元多项式的定义T^T (菜哭!!)。实在不行了就去百度了,想知道其他人的思路、想法是啥。然后就看到了
printf("0 0")!我之前还不明白来着,后来恍然大悟:一开始要查看指数是否为0–即判断是不是[b]常数!!!再次被寄几菜哭了。如果一开始是常数,就根本没后面的戏好嘛!!然后就改啊改。[/b]
#include <stdio.h> #define N 80 int main() { int i = 0; int a ,j; int flag = 1; char ch; int exp,coe; while ( scanf("%d%d%c",&coe,&exp,&ch) != EOF ) { if ( exp == 0 && flag == 1) printf("0 0"); else { coe = exp * coe; exp = exp - 1; if ( exp == -1 ) break; else { a[i] = coe; a[i+1] = exp; i += 2; flag = 0; } } if ( ch == '\n' ) break; } if(!flag) { for ( j = 0 ; j < i - 1 ; j++ ) printf("%d ",a[j]); printf("%d",a[i-1]); } return 0; }
4000
对了!想分享一下,其他人的写法。很简单的噢。要像他学习!
#include<stdio.h> int main() { int cof; int exp; int isfirst = 1; while(scanf("%d%d",&cof,&exp)!=EOF) { if(exp != 0) { if(!isfirst) printf(" "); printf("%d %d",cof*exp,exp-1); isfirst = 0; } } if(isfirst) printf("0 0"); return 0; }
来源:http://linest.github.io/blog/2013/04/13/1/
总结:不要看只有version-1&2,但是调试的过程中的感觉只有自己知道。以前练习少,没有碰到这样的情况,本来挺简单的东西花了那么多时间。唔,还是要加油写代码啦~希望今天的错误与疏忽以后就不要再犯啦。
相关文章推荐
- 第一次博客
- 补录第一次写博客
- 2014.10.17 今天第一次写博客
- Linux前传——第一次写技术博客
- 第一次写博客
- 第一次写博客
- 第一次写博客
- 第一次写博客
- ViewPager实现自动翻页功能 --转载出处找不到了,根据自己的理解写个随笔方便以后的记忆以及代码的共享,感谢给我启发的那位高手--第一次写博客哈
- 第一次写博客,学会分享,乐于奉献
- 第一次写博客
- 第一次开博客,真的有点为自己感到很冲动
- 第一次通过写博客,来总结知识......
- 找回密码,好久没上了第一次发博客好紧张啊
- 这是第一次使用csdn博客
- 我第一次正式开始的写博客
- 第一次写博客,想了很久要给自己留一个什么样的开始
- 第一次博客
- 2007.11.20第一次写这里的博客
- 新人第一次写博客,大家勿喷