C++100例题Word文档下载推荐.docx
- 文档编号:17075624
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:49
- 大小:27.20KB
C++100例题Word文档下载推荐.docx
《C++100例题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++100例题Word文档下载推荐.docx(49页珍藏版)》请在冰豆网上搜索。
b);
else{
cout<
此三边不能构成三角形"
return0;
}
if(a==b&
b==c)cout<
RB<
elseif(cos(a,b,c)>
0&
cos(a,c,b)>
cos(b,c,a)>
0)
{
if(a==b||a==c||b==c)cout<
锐角等腰三角形"
elsecout<
锐角三角形"
elseif(cos(a,b,c)==0||cos(a,c,b)==0||cos(b,c,a)==0)
等腰"
RT<
elseif(cos(a,b,c)<
0||cos(a,c,b)<
0||cos(b,c,a)<
{if(a==b||a==c||b==c)cout<
钝角等腰三角形"
钝角三角形"
/*输入任意的a,b,c求一元二次方程ax*x+bx+c=0的根*/
math.h>
inta,b,c;
doublex1,x2;
输入方程ax*x+bx+c=0的系数:
if(b*b-4*a*c<
0){
此时方程无解"
elseif(b*b-4*a*c==0){
x1=-1*(b/2/a);
此时方程有唯一解为:
x="
x1<
elseif(b*b-4*a*c>
x1=(-b-sqrt(b*b-4*a*c))/2/a;
x2=(-b+sqrt(b*b-4*a*c))/2/a;
此时方程有两根,分别为x1="
"
x2="
x2<
/*将百分制转换为五级制成绩*/
intscore;
charlieve;
输入百分制的成绩:
score;
switch(score/10)
case10:
case9:
case8:
lieve='
A'
break;
case7:
case6:
B'
case5:
case4:
C'
case3:
case2:
D'
case1:
case0:
E'
default:
输入成绩有误"
其成绩为"
lieve<
/*输入年月日,判断它是该年的第多少天*/
intisleap[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},//非润年
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
//润年
intyear,month,day,leap,days=0;
输入年、月、日:
year>
month>
day;
if(year%4==0&
year%100!
=0||year%400==0)
leap=1;
elseleap=0;
for(inti=1;
i<
month;
i++)
days+=isleap[leap][i];
days+=day;
这一天是这一年的第"
days<
天"
/*假定2007年的一月一日是星期三,求2009年的4月20日是星期几*/
intisleap[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,30,29,31,30,31,30,31,31,30,31,30,31}};
intyear,month,day,days=0;
year=2009,month=4,day=20;
intynleap(inti);
for(inti=2007;
year;
for(intj=1;
j<
=12;
j++)
days+=isleap[ynleap(i)][j];
for(intj=1;
days+=isleap[ynleap(year)][j];
days+=day-1;
intflag;
flag=days%7;
switch(flag)
这天是星期三"
这天是星期四"
这天是星期五"
这天是星期六"
这天是星期日"
这天是星期一"
这天是星期二"
这不可能"
intynleap(inti)
intf;
if(i%4==0&
i%100!
=0||i%400==0)f=1;
elsef=0;
/*韩信点兵*/
if(i%3==2&
i%5==3&
i%7==2){
cout<
满足条件的最小整数是"
return0;
}
/*求一个整数的各个数位上的数字之和并反序输出*/
intyuan,current=0,sum=0;
输入原整数"
yuan;
while(yuan)
current=current*10+yuan%10;
sum+=yuan%10;
yuan=yuan/10;
该数各个数位上的数字的和是"
sum<
反序输出是"
current<
/*求1+2+3+……前n项的和*/
intn,sum=0;
输入相加的共有几项:
n="
n;
=n;
i++)
sum+=i;
这前"
项的和为"
/*求1-3+5-7+……的前100项的和*/
intsum=0,flag=1,count=1;
count<
=100;
i=i+2){
sum+=flag*i;
flag=-flag;
count++;
这样的前100项的和是:
/*求1+(1+2)+(1+2+3)+(1+2+3+4)+……的前n项的和*/
输入相加项数n="
=i;
sum+=j;
此式前"
项相加得"
/*求n!
*/
intn;
doublesum=1;
输入阶乘数n="
doublejc(intn);
sum=jc(n);
n的阶乘是:
doublejc(intn)
if(n==1)return1;
elsereturnn*jc(n-1);
/*求1!
+2!
+3!
+……+n!
doublejc(inti)
if(i==1)return1;
elsereturni*jc(i-1);
doublesum=0;
输入项数n="
sum+=jc(i);
前"
项的阶乘的和为"
-3!
+5!
-7!
+……前n项的和*/
intn,flag=1,count=0;
i+=2)
sum+=flag*jc(i);
项的和是"
/*求1*2+2*3+3*4+……前n项的和*/
doublech(inti)
returni*(i+1);
输入相加的项数n="
sum+=ch(i);
该式前"
/*判断一个从键盘输入的数是否为素数*/
输入一个整数:
for(inti=2;
=sqrt(n);
if(n%i==0)break;
if(i>
sqrt(n))cout<
这个数是素数"
elsecout<
这个数不是素数"
/*求3到1000之间的所有素数的和*/
intsushu(inti)
for(intj=2;
=sqrt(i);
if(i%j==0)break;
if(j>
sqrt(i))returni;
elsereturn0;
for(inti=3;
=1000;
sum+=sushu(i);
3到1000之间的所有素数的和为"
/*验证哥德巴赫猜想:
一个大于2的偶数总可以分解成两个素数的和*/
intcheck(inti)
if(i==1)return-1;
if(i==2)return2;
elsereturn-1;
输入一个偶数n="
for(inti=n-1;
i>
=n/2;
i--)
if(check(i)+check(n-i)==n)
="
check(i)<
+"
check(n-i)<
/*设s=1+1/2+1/3+…+1/n,求与8最接近的s的值及与之对应的n值*/
doublefun(doublen)
for(doublei=1;
sum+=1.0/i;
returnsum;
doubles=0;
doublen=1;
while
(1)
s=fun(n);
if(fabs(8.0-fun(n))>
fabs(8.0-fun(n+1)))n++;
else{
最接近8的s="
s<
此时的n="
break;
/*假定2007年的一月一日是星期三,打印出该年的日历*/
iomanip.h>
intmonth_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
staticintdays=0;
setw(3)<
日"
一"
二"
三"
<
四"
五"
六"
//最前面有4个空格
intweekday;
i++){
=month_day[i];
j++){
days++;
weekday=((days-1)%7+3)%7;
//注意
if(j==1){
cout<
setw
(2)<
月"
for(intp=1;
p<
=weekday;
p++)
cout<
}
j;
if(weekday==6)cout<
endl<
/*鸡兔同笼一共有40只脚,求鸡兔各有多少只,总共有多少种组合*/
inta,b,n=0;
//a鸡,b兔,n组合数
for(a=0;
a<
=20;
a++)
for(b=0;
b<
=10;
b++)
if(2*a+4*b==40){
鸡:
兔:
n++;
共有"
种组合"
/*换零钱.把一元钱全兑换成硬币(1分2分5分),有多少种兑换方法*/
inta,b,c,n=0;
//1分的为A,2分的为B,5分的为C,种数为N
=50;
b++)
for(c=0;
c<
c++)
if(a+2*b+5*c==100){
n++;
}
<
种兑换方法"
/*已知A>
B>
C>
0,A,B,C为整数,且A+B+C<
100。
求满足1/A*a+1/B*b=1/C*c的A,B,C共有多少组*/
for(c=1;
100;
for(b=c+1;
for(a=b+1;
if(a+b+c<
100&
1.0/a/a+1.0/b/b==1.0/c/c)
{
这样的A,B,C共有"
组"
/*设abcd*e=dcba,(a非0,e非0非1),求满足条件的整数abcd与e*/
inta,b,c,d,e;
intsum1=0,sum2=0;
for(a=1;
=9;
for(d=0;
d<
d++)
for(e=2;
e<
e++){
sum1=a*1000+b*100+c*10+d;
sum2=d*1000+c*100+b*10+a;
if(sum1*e==sum2)
cout<
sum1<
}
/*因子之和等于它本身的数为完数。
如:
28的因子是1,2,4,7,14,且1+2+4+7+14=28,则28为完数。
求[2,1000]中的完数*/
{
inttemp=0;
j++)
if(i%j==0)temp+=j+i/j;
if(temp+1==i)returni;
intcount=0;
if(check(i)!
=0){
count++;
个这样的数"
/*将一个整数分解为1、质因子或本身之积。
如5=1*5,8=1*2*2*2*/
=1"
while
(1){
if(n%i==0){
*"
i;
n/=i;
elsebreak;
/*求1000以内亲密数对。
亲密数对的定义是:
若正整数a的所有因子之和为b,b的所有因子之和为a,
且a!
=b,则称ab互为亲密数对。
220的因子之和1+2+4+…+110=284
284的因子之和1+2+…+142=220*/
intcheck(inta)
inttempA=0,tempB=0;
intb=0;
=sqrt(a);
if(a%j==0)tempA+=j+a/j;
b=1+tempA;
for(j=2;
=sqrt(b);
if(b%j==0)tempB+=j+b/j;
if(tempB+1==a)returnb;
intj,n=0;
i++){
j=check(i);
if(j!
=0&
i!
=j){cout<
--"
n++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 100 例题