版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、输入3个数,求最大数。#include <iostream>using namespace std;int main()int a,b,c,max;cout<<"请输入三个数字:"<<endl;cin>>a>>b>>c;max=(a>b)?a:b;if(c>max)max=c;cout<<"最大值:"<<max<<endl;return 0;2、韩信点兵:有一个数,用3除余2;用5除余3;用7除余2;求满足条件的最小数。#inclu
2、de <iostream>using namespace std;int main()int a;for(a=1;a<1000;a+)if(a%3=2&&a%5=3&&a%7=2)cout<<a;break;return 0;3、求1+2+3+100#include <iostream>using namespace std;int main()int s=0; int a=1;do s=s+a; a=a+;while(a<101);cout<<s<<endl;return 0;4、 求1-
3、2+3-4+-100#include <iostream>using namespace std;int main()int a,s=0,s1=0,s2=0;for(a=1;a<101;a+,a+)s1+=a;for(a=-2;a>-101;a=a-2)s2=s2+a;s=s1+s2;cout<<s<<endl;return 0;5、 求1+1/2+1/3+1/100#include <iostream>using namespace std;void main()float a,m;float s=0;for(a=1;a<10
4、1;a+)m=1/a;s=s+m;cout<<"s="<<s<<endl;6、 求输入n,求n!(需判断n的合法性)递归调用#include <iostream>using namespace std;int fac(int n)if(n=0)return 1;elsereturn fac(n-1)*n;int main()while(1) int x,y,n; cout<<"输入一个整数:n" cin>>x; fac(x); cout<<fac(x)<<en
5、dl;break;return 0;7、 求1!+2!+3!+10!#include <iostream>using namespace std;int main()int s=0;int t=1;int n;for(n=1;n<11;n+)t=t*n;s=s+t;cout<<"1!+2!+3!+.+10!="<<s<<endl;return 0;8、求1+1/2!+1/3!+1/n!,直到1/n!<1E-5为止第一种方法:#include <iostream>using namespace std;v
6、oid main()double s=0;double t=1;double n=1;dot=t*n;s=s+1/t;n+;while (t<1e5);cout<<"1/1!+1/2!+1/3!+.+1/n!="<<s<<endl;第二种方法:#include <iostream>using namespace std;void main()double sum=0.0; /结果double now=1.0; /现在的1n!double cnt=2.0; /现在的nwhile(now>=1e-5)sum+=now;
7、now/=cnt;cnt+=1.0;cout<<sum<<endl;9、 用公式求ex=1+x+x2/2!+x3/3!+xn/n!。n取20。#include<iostream>using namespace std;int pow(int x, int n);int f1(int n);int main(int argc, char* argv) int x, n; double ex = 1; cin >> x; cin >> n; for (int i=1; i<=n; i+) ex += pow(x, i) / (f1(
8、i) * 1.0); cout << ex << endl; system("pause"); return 0;int f1(int n) int s = 1; for (int i=2; i<=n; i+) s *= i; return s;int pow(int x, int n) int s = 1; for (int i=1; i<=n; i+) s *= x; return s;10、假定f1=1,f2=1;fn=fn-1+fn-2。输出前50项的值,且要求每行输出5个值#include<iostream> #in
9、clude<iomanip>using namespace std; int f(int n)int sum;if (n<=2)return 1;else sum=f(n-1)+f(n-2);return sum;cout<<sum;int main() int i,n;cin>>n;f(n);for(i=1;i<=n;i+)cout<<"f("<<i<<"): "<<f(i)<<" "if(i%5=0)cout<<
10、endl;return 0; 11、 判断一个数是否为素数方法1:# include<iostream># include<cmath>using namespace std;int main()int i,n,k;cout<<"请输入一个数:"<<endl;cin>>n;k=sqrt(n);for(i=2;i<=k;i+)if(n%i=0)break;if(i>k)cout<<n<<"是素数。"<<endl;else cout<<n&
11、lt;<"不是素数。"<<endl;return 0;方法2:#include<iostream> #include<cmath>using namespace std; int main() int i,n,m;cout<<"请输入一个数:"<<endl;cin>>n;m=sqrt(n);for(i=2;i<=m;i+)if(n%i=0)break; if(i>m) cout<<n<<"是素数。"<<endl
12、; else cout<<n<<"不是素数。"<<endl;return 0; 12、 输出2-1000中的素数及个数。且要求每行输出8个素数。 方法1:#include <iostream.h> #include <math.h> int main() int n=0, i, j,w,k; for(i=2;i<=2000; i+) w=1; k=sqrt(i);for (j=2; j<=k; j+) if (i%j=0) w=0;break; if (w) +n; if (n%8=0)cout<
13、<i<<endl; elsecout<<i<<" " cout<<endl;cout<<"个数n="<<n<<endl;return 0;方法2:#include <iostream>#include <cmath>using namespace std;int main()int i,j,n=0;for(i=2;i<2001;i+) for(j=2;j<=i;j+) if(j=i) cout<<i<<&q
14、uot; " n+; if(n%8=0) cout<<endl; if(i%j=0) break; cout<<endl;cout<<"个数为n:"<<n<<endl;return 0;13、 输入两个整数,求最大公约数和最小公倍数。#include<iostream>using namespace std;int fun1(int a,int b);int fun2(int a,int b);int main()int a,b;cout<<"请输入两个整数:"
15、<<endl; cin>>a>>b;int fun1(int a,int b);int fun2(int a,int b); cout<<"最大公约数:"<<fun1(a,b)<<endl;cout<<"最小公倍数:"<<fun2(a,b)<<endl;return 0;int fun1(int a,int b)int m,i; m=a<b?a:b; for(i=m;i>=1;i-) if(a%i=0&&b%i=0) b
16、reak; return i;int fun2(int a,int b) int n,j; n=a<b?a:b; for(j=n;j<=a*b;j+) if(j%a=0&&j%b=0) break; return j;14、 输入一个非0的一位整数x,输入一个整数n。输出n位整数x x xx。#include<iostream>#include<cmath>using namespace std;int main()int m,i,s,x,n,j; cout<<"输入一个整数x:"<<endl; c
17、in>>x; cout<<"输入一个整数n:"<<endl; cin>>n;s=0;for(i=0;i<=n;i+) j=pow(10,i); s=s+j;m=x*s;cout<<"结果:"<<m<<endl;return 0;15、 输入n、a。求sn=a+aa+aaa+aa,其中a是一个非0的一位整数。#include<iostream>#include<cmath>using namespace std;int fun(int a,in
18、t b);int main()int n,a,s,i,k;cout<<"输入一个整数n:"<<endl; cin>>n; cout<<"输入一个整数a:"<<endl; cin>>a;s=0;for(i=0;i<n;i+)k=fun(a,i);s=s+k;cout<<"Sn="<<s<<endl;return 0;int fun(int a,int b)int m,i,s,j; s=0;for(i=0;i<=b;i+
19、) j=pow(10,i); s=s+j;m=a*s;return m;16、 输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值。#include<iostream>#include<cmath>using namespace std;void main()int x,y,m,n,i,j=1,k=0,a20;cout<<"请输入一个数:"cin>>m;y=m;cout<<endl;for(i=1;i+) j*=10; n=m/j; ai=n; k+; if(n<1) break;c
20、out<<"您输入的位数是:"<<k<<endl;int b=1,c,d=0;for(i=1;i<=k;i+) b*=10; /cout<<b<<endl; cout<<"你输入的数字各位分别是:"for(i=k;i>0;i-) b=b/10; c=m/b; m=m-c*b; d+=c; cout<<c<<" "cout<<endl;/cout<<"你输入的数字是"<<k&
21、lt;<"位数n"cout<<"各位上的数字之和为:"<<d<<endl;x=0;do x=x*10+y%10; y=y/10;while(y!=0);cout<<"逆序输出为:"<<x;cout<<endl;17、一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3。求1000以内所有的完数,每行5个。#include <iostream>#include <cmath>using namespace std;i
22、nt main()int m,i;cout<<"1000以内的完数有:"for(m=1;m<1001;m+)int c=0,n=0; for(i=1;i<m;i+)if(m%i=0)c=c+i;if (c=m)n+;cout<<c<<" "if(n%5=0)cout<<endl;cout<<endl;return 0;18、 用迭代法求x=a的平方根。求平方根的迭代公式为xn+1=0.5(xn+a/xn) 。要求前后两次求出的x的差的绝对值小于1e-5为止。#include <
23、iostream>#include <cmath>#include <cstdio>using namespace std;int main()double x1,x2,a,b;x2=0;x1=1.0;b=1.0;cin>>a;while(b>=1e-5)x2=(x1+a/x1)/2;b=fabs(x2-x1);x1=x2;cout<<x2<<endl;return 0;19、 用牛顿迭代法求方程在1.5附近的根 2x3-4x2+3x-6=0#include <iostream>#include <cma
24、th>#include <cstdio>using namespace std;int main()double x=1.5,x0,f,f1;do x0=x;f=2*x0*x0*x0-4*x0*x0+3*x0-6;f1=6*x0*x0-8*x+3;x=x0-f/f1; while(fabs(x-x0)>=1e-5);cout<<"x0="<<x0<<endl;return 0;20、 用二分法求上面的方程在(-10,10)之间的根#include <iostream>using namespace st
25、d;double fun(double x)return 2*x*x*x-4*x*x+3*x-6;double judge(double e,double a,double b)double c;c=(a+b)/2;if(b-a<=e) return c;elseif(fun(c)=0)return c;else if(fun(a)*fun(c)<0)/b=c;return judge(e,a,c);else/a=c;return judge(e,c,b);int main()double e; cout<<"请输入精确度:"<<endl
26、; cin>>e; cout<<judge(e,-10,10)<<endl; return 0;21、 打印形状为直角三角形的九九乘法表。#include <iostream>using namespace std;int main()int i,j,k;for(i=1;i<=9;i+) for(j=1;j<=i;j+) cout<<j<<"x"<<i<<"=" k=i*j; cout<<k<<" " i
27、f(i=j) cout<<endl; return 0;22、 百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大中小马多少匹,共有多少组解?#include <iostream>using namespace std;int main()int x,y,z;int m=0;for(x=1;x<100;x+) for(y=1;y<100;y+) for(z=1;z<100;z+) if(x+y+z=100)&&(6*x+4*y+z=200) m+; cout<<"第"
28、<<m<<"种方案。"<<endl; cout<<"大马:"<<x<<" " cout<<"中马:"<<y<<" " cout<<"小马:"<<z<<endl; return 0;23、 数列1,2,2,3,3,3,4,4,4,4,5, 问第100是多少?#include <iostream>using namespace
29、 std;int main()int i,m,n=0; for(i=1;i<101;i+) for(m=1;m<=i;m+) n+; if(n=100) cout<<"第100个数:"<<i<<endl; return 0;24、 求任意一个整数的十位上的数字。#include <iostream>using namespace std;int main()int m,n,x;cout<<"请输入一个数:"cin>>m;n=m%10;m=(m-n)/10;x=m%10;c
30、out<<endl;cout<<"其十位数为:"<<x<<endl;return 0;25、 输入三个实数,判断能否构成三角形;若能,再说明是何种类型的三角形。#include <iostream>using namespace std;int main()int a,b,c;cout<<"请输入任意三个数:"cin>>a>>b>>c;if(a+b)>c&&(a+c)>b&&(b+c)>a&
31、&(a-b)<c&&(a-c)<b&&(b-c)<a) if(a=b|a=c|b=c)cout<<"是等腰三角形"else if(a=b&&a=c)cout<<"是等边三角形"else if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)cout<<"是直角三角形"else cout<<"是普通三角形"else cout<<"不可以构成三角形。&q
32、uot;<<endl;return 0;26、 输入任意的a,b,c求一元二次方程ax*x+bx+c=0的根。#include <iostream>#include <cmath>using namespace std;int main()int a,b,c;cout<<"请输入任意三个数a,b,c:"<<endl;cin>>a>>b>>c; float x1,x2,d; d=sqrt(b*b-4*a*c); if(d>=0) x1=(-b+d)/(2*a); x2=(-b
33、-d)/(2*a); cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl; else cout<<"无解"<<endl;return 0;27、 将百分制成绩转换为五级制成绩#include <iostream>using namespace std;int main()int s; cout<<"请输入分数:" cin>>s;if(s>10
34、0|s<0)cout<<"输入有误!" else if(s>0&&s<60)cout<<"不及格" else if(s>=60&&s<80) cout<<"及格" else if(s>=80&&s<90) cout<<"良好" else if(s>=90&&s<=100) cout<<"优秀" return 0;28、
35、输入年月日,判断它是该年的第多少天。#include <iostream>using namespace std;int main()int year,month,day,days=0,i;cout<<"请输入年月日"<<endl;cout<<"请输入年:"cin>>year;cout<<"请输入月:"cin>>month;cout<<"请输入日:"cin>>day; if(year>10000|yea
36、r<0|month<0|month>13|day<0|day>31) cout<<"有误!"<<endl; else if(year%4=0&&year%100=0|year%400=0) for(i=1;i<month;i+) if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) days+=31; else if(i=4|i=6|i=9|i=11) days+=30; else days+=29; else for(i=1;i<month;i+) if(i=1|i=3|i=5
37、|i=7|i=8|i=10|i=12) days+=31; else if(i=4|i=6|i=9|i=11) days+=30; else days+=28; cout<<"它是该年的第"<<days+day<<"天。"<<endl;return 0;29、 假定2007年的一月一日是星期三,求2009年的4月20日是星期几。#include <iostream>using namespace std;long alldays(int year,int month,int day);long
38、alldays(int year,int month,int day)int i;long d=0;for(i=1;i<year;i+)if(year%4=0&&year%100=0|year%400=0)d+=366;elsed+=365;for(i=1;i<month;i+)if(i=1|i=3|i=5|i=7|i=8|i=10|i=12)d+=31;else if(i=4|i=6|i=9|i=11)d+=30;else if(year%4=0&&year%100=0|year%400=0) d+=29;else d+=28; return d+
39、day;int main()int date,i,d;long x=alldays(2007,1,1);long y=alldays(2009,4,20); long z=alldays(2009,4,20)-alldays(2007,1,1)+1;cout<<endl;date=3;cout<<"间隔"<<z<<"天"cout<<endl;d=z%7;for(i=1;i<=d;i+)date+;if(date>7)date=date-7;cout<<"星期&q
40、uot;<<date;cout<<endl;return 0;30、 我国古代著名的孙子定理也称韩信点兵。 /用现代语言讲是:有一个数,用3除余2,用5除余3,用7除余2,求满足条件的最小数。#include <iostream>using namespace std;int main()int i;for(i=1;i+)if(i%3=2&&i%5=3&&i%7=2)break;else;cout<<i<<endl;return 0;31、 求一个整数的各个数位上的数字之和并反序输出。#include
41、<iostream>using namespace std;int main()int m1,m2,j=10,i,d=0,a20;cout<<"请输入任意一个数"<<endl;cin>>m1;m2=m1;cout<<"反序输出各位数"<<endl;for(i=1;i+)m1=m2%j;m2=m2/j;ai=m1; cout<<m1<<" " d+=m1;if(m2<1)break;cout<<endl;cout<&l
42、t;"各位数之和为"<<d<<endl;return 0;32、 求1+2+3+前n项的和。#include <iostream>using namespace std;int main()int i,n,s=0;cout<<"请输入一个n值:"<<endl;cin>>n;for(i=1;i<=n;i+)s+=i;cout<<"前n项和为:"<<s<<endl;return 0;33、 求1-3+5-7+的前100项的和。
43、方法1:#include <iostream>using namespace std;int main()int i,n=1,m=3,s,s1=0,s2=0;for(i=1;i<=100;i+)s1+=n; n+=2; for(i=1;i<=50;i+)s2+=m;m+=4;s=s1-2*s2;cout<<"前100项和为:"<<s<<endl;return 0;方法2:#include<iostream.h> void main() int a=1,b=-1,i,j; int m=1,n=1,sum=
44、0; for(i=1;i<=100;i+) a*=b; n=m*a; sum+=n; m+=2; cout<<-sum; cout<<endl; 34、 求1+(1+2)+(1+2+3)+(1+2+3+4)+的前n项的和#include <iostream>using namespace std;int main()int i,n,s=0,s1=0;cin>>n;for(i=1;i<=n;i+)s1+=i; s+=s1;cout<<"前n项和:"<<s<<endl;35、 求n!
45、#include <iostream>using namespace std;int main()int i,n;cin>>n;for(i=n-1;i>=1;i-)n*=i; cout<<"n!:"<<n<<endl;return 0;36、 求1!+2!+3!+n!#include <iostream>using namespace std;int main()int i,n,s=0,m=1;cin>>n;for(i=1;i<=n;i+) m*=i;s+=m; cout<
46、<"1!+2!+.+"<<n<<"!="<<s<<endl;return 0;37、 求1!-3!+5!-7!+前n项的和#include <iostream>using namespace std;int main()int m,n=1,x=1,y=-1,sum=0;double a,b=1,s=0;cin>>m;for(int i=1;i<=m;i+)n=2*i-1;a=1;for(int j=1;j<=n;j+)x*=y;a*=j;b=a*(-x);sum+=
47、b;cout<<sum<<" "<<endl;return 0;38、 求1*2+2*3+3*4+前n项的和#include <iostream>using namespace std;int main() int m,i,n,s=0; cin>>n;for(i=1;i<=n;i+)m=i*(i+1);s+=m;cout<<s<<" "<<endl;return 0;39、 从键盘输入一个整数,判断它是否为素数#include <iostream&
48、gt;using namespace std;int main()int n,i,m;cin>>n;for(i=2;i<n;i+)m=n%i;if(m=0)break;if(m=0)cout<<"不是素数。"<<endl; elsecout<<"是素数。"<<endl;return 0;40、 求3到1000之间的所有素数的和。#include <iostream>#include <cmath>using namespace std;int main()int n
49、,i,k,s=0,j=0;for(n=3;n<=1000;n+) k=sqrt(n); for(i=2;i<=k;i+) if(n%i=0) break; if(i>k) cout<<n<<" " s+=n; j+; if(j%8=0) cout<<endl; cout<<endl;cout<<"s="<<s<<endl;return 0;41、 验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和。#include <iostream>
50、;#include <cmath>using namespace std;int f(int x);int f(int a)/判断是否是素数 int i,j; j=sqrt(a); for(i=2;i<=j;i+) if(a%i=0) break; if(i>j) return 1; else return 0;void main()int n,m,i,k;cout<<"请输入一个大于2偶数:"<<endl;cin>>m;if(m<2|m%2!=0)cout<<"输入有误!"&
51、lt;<endl; else cout<<"偶数"<<m<<"可以拆成两个素数之和"<<endl; for(i=1;i<=m/2;i+) n=i; k=m-i; if(f(n)&&f(k) cout<<" "<<n<<" "<<k<<endl; 42、 设s=1+1/2+1/3+1/n,求与8最接近的s的值及与之对应的n值。#include <iostream>#inc
52、lude <cmath>using namespace std;void main()float i,n,s=0;for(i=1;i;i+)n=1/i;s+=n;if(fabs(s-8)<=1E-3)break;cout<<s<<endl;cout<<i<<endl;43、 假定2007年的一月一日是星期三,打印出该年的日历(仿照台历或挂历样式)#include <iostream>#include <cmath>using namespace std;void main()cout<<"2007年的日历"<<endl;int xq=1;for(int i=1;i<13;i+)cout<&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025跨国技术转让合同 外企许可协议
- 2025采购合同中英文样本
- 2025陶瓷砖产品购销合同
- 2025项目租赁借款合同
- 土地整治项目管理员高级专业知识考试大纲与题库
- 催收业务岗位常见面试题及高分回答技巧
- 质量环境安全培训试题及答案解析
- 会计从业考试监考模拟题及答案解析
- 护理知识竞赛题库简单及答案解析
- 《2025设备融资租赁合同》
- 人教版数学九年级上册期末考试卷附答案
- 2025年内蒙古包钢集团招聘笔试参考题库含答案解析
- 自动化专业生涯发展展示
- 2024年六西格玛绿带认证考试练习题库(含答案)
- 撤并小学资产移交方案
- 2023-2024学年安徽省九年级语文上学期期中质量检测试卷附答案解析
- 海信入职在线测评真题
- 精神障碍社区康复服务点评估
- 四川省攀枝花市花城外国语学校2023-2024学年七年级上学期期中检测英语试题
- BOT 模式在国有企业基础设施项目中的应用研究
- 专升本计算机教学课件-第一章-计算机基础知识(2023新版大纲)
评论
0/150
提交评论