![](https://img-blog.csdnimg.cn/20210127115407677.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
PTA遇到的问题
我是笨蛋,我要好好做题
小魔女蒙娜
小废物
展开
-
找呀找呀找方法 找到递归好方法
使用函数输出指定范围内的Fibonacci数本以为自己的代码已经写的算简便,就差一个结尾的空格如何去掉的问题,到网上一看,发现还是写麻烦了首先fib函数,网上的方法太巧妙了,函数套函数int fib( int n ){ if(n==1||n==2) return 1; else return fib(n-1)+fib(n-2);}和我的土方法一比显得巧妙很多int fib( int n ){ int i=1,j=1,t=0,cnt=2; wh原创 2021-03-13 19:03:22 · 119 阅读 · 0 评论 -
分类统计字符个数
void StringCount( char s[] );题目给的函数是放在数组中的字符,我一开始写的时候没有考虑到数组问题,还是按原来的方法一样,用ASCii码来判断,但这是不行的if(s>=65&&s<=90||s>=97&&s<=122) let++;else if(s>=48&&s<=57) dig++;else if(s==32||s==10) blk++;else otr原创 2021-03-13 18:52:35 · 180 阅读 · 0 评论 -
最大范围不通过
习题6-3 使用函数输出指定范围内的完数只有最大范围不通过,后来查阅发现,1不是完数(某自然数除它本身以外的所有因子之和等于该数,则该数被称为完数),如果在factorsum函数中,不把1排除,那么会影响程序通过int factorsum( int number ){ int i,sum=1;//这么写会判断1为完数,导致测试不通过 for(i=2;i<number;i++){ if(number%i==0) sum+=i; }原创 2021-03-13 17:42:10 · 94 阅读 · 0 评论 -
循环套循环,效率真的慢
double funcos( double e, double x ){ double sum=0.0,mul,res,mid=1.0; int i,j,k,cnt; for(i=0,cnt=1;mid>=e;i=i+2,cnt++,mul=1.0,res=1.0){ for(j=0;j<i;j++){ mul*=x; } for(k=1;k<=i;k++){ res*=原创 2021-03-13 15:54:39 · 296 阅读 · 0 评论 -
函数
1.代码复制是程序质量不良的表现,所以需要用函数2.函数是一块代码,接受一零个或多个参数,做一件事,并返回零个或多个值3,void 没有 不返回任何值4 有了圆括号才表明他是函数5 单一出口理念 最好不要多个出口6 如果函数有返回值,必须使用带值的return7 函数原型(函数头带分号) 告诉编译器函数的名称,参数,返回类型8 函数原型可以不写参数名称(int a ,int b)9 c语言在调用函数时,永远只能传值给函数10 每个函数都有自己的变量空间,参数也储存在这个独立空间中,和其他函原创 2021-02-09 11:19:58 · 107 阅读 · 0 评论 -
return 0在程序中的影响
今天遇到这样一道题在借鉴了别人的做法后终于写出了(其实是抄出了)代码这是第一版#include<stdio.h>int main(){ char gh; int x1,x2,sum=0; scanf("%d",&x1); while((gh=getchar())!='='){ scanf("%d",&x2); if(gh=='/'&&x2==0){ printf("ERROR\n");原创 2021-02-06 18:06:50 · 507 阅读 · 0 评论 -
猴子吃桃
用逆推法我的写法#include<stdio.h>int main(){ int total=3,n; scanf("%d",&n); int i,j; for(i=2,j=1;j<n;j++){ total*=i; } total=total-2; printf("%d",total); return 0;}最后答案没有问题,但是可以看出来i其实并没有用,直接改成total*=2也可,省原创 2021-02-05 17:56:23 · 86 阅读 · 0 评论 -
快速幂
今天在做题时学习了一种新的求幂方法,记录下来快速幂可以用位运算来实现&: 二进制“与”(都为1时,结果是1,否则是0。)b & 1:取b二进制的最低位,判断和1是否相同,相同返回1,否则返回0a >>= b:将 a 中的位向右移动 b 次(每一次移动都表示“除以 2”)b >>=1:把b的二进制右移一位,即去掉其二进制位的最低位常规求幂int pow1(int a,int b){int i,res=1;for(i=1;i<=b;i++){原创 2021-01-29 09:39:03 · 278 阅读 · 0 评论 -
运行超时怎么办
项目场景:PTA习题4-6 水仙花数问题描述:在程序测试时,输入最大位数(7位)被告知运行超时此为第一版代码#include<stdio.h>#include<math.h>int main(){ int n,x,y,i,j,sum=0; scanf("%d",&n); for(i=pow(10,n-1);i<pow(10,n);i++,sum=0) { j=i; for(x=1;x<=n;x原创 2021-01-28 19:18:37 · 14224 阅读 · 0 评论 -
精度问题
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录项目场景:问题描述:原因分析:解决方案:一、pandas是什么?二、使用步骤1.引入库2.读入数据总结项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override原创 2021-01-27 16:57:10 · 199 阅读 · 1 评论