20190401作业避坑指南

it2022-05-30  74

共9+5-1道题,发现错误请及时反馈,如无错误将不再更新

题目1.1 求(1+x)^α,|x|<1的近似值 提示:\((1+x)^a = 1+ax^1/1! + a(a-1)x^2/2! + ...... + [a(a-1)...(a-n+1)x^n]/n!\) 分解式子得:\(y_0=1\)\(y_1=ax/1!\)\(y_2=a(a-1)x^2/2!=y_1*(a-1)x/2\)\(y_3=a(a-1)(a-2)x^3/3!=y_2*(a-1)x/3\) ......\(y_n=[a(a-1)...(a-n+1)x^n]/n!=y_{n-1}*(a-n+1)*x/n\)

#include <stdio.h> int main(){ double n,i,a,x,sum,y; scanf("%lf%lf%lf",&x,&a,&n); y=sum=1.0; for(i=0;i<n;i++){ y*=(a-i)*x/(i+1.0); sum+=y; } printf("%.8lf",sum); return 0; }

1.2 求和

#include <stdio.h> int main(){ int s,n,i,a; s=0; a=0; scanf("%d",&n); for(i=1;i<=n;i++){ a+=i; s+=a; } printf("%d",s); return 0; }

1.3 计算公式b

#include <stdio.h> int main(){ double n,i,a,s; scanf("%lf",&n); s=a=0; for(i=1.0;i<=n;i++){ a+=i*1.0; s+=1.0/a; } printf("%.4lf",s); return 0; }

1.4 素数

#include <stdio.h> int main(){ int i,j; int mark,n,cnt; scanf("%d",&n); cnt=0; for(i=1;i<=n;i+=10){ mark=1; for(j=2;j<i;j++){ if(i%j==0){ mark=0; break; } } if(mark&&i!=1){ printf("%d ",i); cnt++; } } if(cnt==0) printf("-1"); return 0; }

1.5 整数求和

#include <stdio.h> int main(){ int a,n,s,d,i; s=d=0; scanf("%d%d",&a,&n); for(i=0;i<n;i++){ d=d*10+a; s+=d; printf("%d",d); if(i==n-1) printf(" = "); else printf(" + "); } printf("%d",s); return 0; }

题目1.6 完全数

#include <stdio.h> int main(){ int a,b,i; int sum,cnt=0; scanf("%d%d",&a,&b); for(;a<=b;a++){ i=1; sum=0; for(;i<a;i++){ if(a%i==0) sum+=i; } if(a==sum){ cnt++; //找到一个完全数 printf("%d ",a); } } if(cnt==0) printf("No Answer"); //一个完全数也没找到 return 0; }

1.7 求因数

#include <stdio.h> int main(){ int n,i; scanf("%d",&n); for(i=1;i<=n;i++){ if(n%i==0) printf("%d ",i); } return 0; }

题目1.8 字符串加密

#include <stdio.h> int main(){ int a; char x; scanf("%d",&a); getchar(); //消去数字和字符串间的多余空格 while(~scanf("%c",&x)){ //scanf()前加~可以判断文件输入结束 printf("%c",x+a); } return 0; }

1.9 计算公式:求平方根

#include <stdio.h> int main(){ int i,n; double x,y; scanf("%lf%d",&x,&n); y=x*1.0; for(i=0;i<n;i++){ y=(y+x/y)/2.0; } printf("%.5lf",y); return 0; }

2.1 素数判断

#include <stdio.h> int main() { int i, n; int mark = 0; scanf("%d", &n); for (i = 2; i < n; i++) { if (n % i == 0) mark = 1; break; } if (n != 1 && mark == 0) printf("1"); else printf("0"); return 0; }

题目2.2 阶乘和数(正序)

#include <stdio.h> int main() { int a, b, l, sum, i, x, t; scanf("%d", &a); b = sum = l = 0; t = a; //记忆a的值 while (a > 0) { //依次计算a的每一位阶乘 x = 1; for (i = 1; i <= a % 10; i++) { x *= i; } sum += x; //将一位的阶乘计入总阶乘和 l++; //记录a的位数 b = b * 10 + a % 10; //记录a的倒序写法 a /= 10; } a = t; //回复a的值 printf("%d,", a); for (i = 0; i < l; i++) { if (b > 9) //b还没去到最后一位,以加号结尾 printf("%d!+", b % 10); else //b还没去到最后一位,以等号结尾 printf("%d!=", b % 10); b /= 10; } printf("%d\n", sum); if (sum == a) printf("Yes"); else printf("No"); return 0; }

2.3 反弹

#include <stdio.h> int main(){ float m,n,sum,h,i; scanf("%f%f",&n,&m); h=sum=n; for(i=0;i<m;i++){ sum+=h/2.0; h/=4.0; } sum-=h*2.0; printf("%.2f\n%.2f",sum,h); return 0; }

2.4 分数化简

#include <stdio.h> int main(){ int m,n,g,t,a,b,c; scanf("%d%d",&m,&n); a=m; b=n; while(b!=0){ c=a%b; a=b; b=c; } printf("%d %d",m/a,n/a); return 0; }

2.5 公式计算1:求π

神说:战士的最后一发子弹当留给自己

转载于:https://www.cnblogs.com/kangyupl/p/10638058.html

相关资源:MongoDB下载安装使用避坑指南

最新回复(0)