作业2 C++概述

【2.22】编写一个C++风格的程序,用动态分配空间的方法计算 Fibonacci数列的前20项并存储到动态分配的空间中。

#include<iostream>
using namespace std;
int main()
{
    int *p=new int[20];
    *p=1;
    *(p+1)=1;
    cout<<*p<<"\t"<<*(p+1)<<"\t";
    p=p+2;
    for(int i=3; i<=20; i++){
        *p=*(p-1)+*(p-2);
        cout<<*p<<"\t";
        p++;
        if(i%5==0) cout<<endl;
    }
    return 0;
}

【2.23】编写一个C++风格的程序,建立一个被称为 sroot()的函数,返回其参数的二次方根。重载 sroot()3次,让它返回整数、长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt()。

#include<iostream>
#include<cmath>
using namespace std;
double sroot(int x){
    return sqrt(x);
}
double sroot(long x){
    return sqrt(x);
}
double sroot(double x){
    return sqrt(x);
}

int main()
{
    int a=1;
    long b=1234;
    double c=12.34;
    cout<<sroot(a)<<endl;
    cout<<sroot(b)<<endl;
    cout<<sroot(c)<<endl;
    return 0;
}

【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?

#include<iostream>
using namespace std;
int main()
{
    int count=0;
    for(int i=0; i<=100/5; i++){
        for(int j=0; j<=100/2; j++){
            if(100-5*i-2*j>=0){
                cout<<i<<"\t"<<j<<"\t"<<100-5*i-2*j<<endl;
                count++;
            }          
        }
    }
    cout<<count<<endl;
    return 0;
}

【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。要求使用变量的引用。

#include<iostream>
using namespace std;
void swap(int &a, int &b){
    int temp;
    temp=a;a=b;b=temp;
}
int main()
{
    int a,b;
    cin>>a>>b;
    if(a>b) swap(a,b);
    cout<<a<<" "<<b;
    return 0;    
}

【2.26】编写C++风格的程序,用二分法求解f(x)=0的根.

#include<iostream>
#include<cmath>
using namespace std;
inline float f(float x){
    return 2*x*x*x-4*x*x+3*x-6;
}
int main()
{
    float left,right,middle,yleft,yright,ymiddle;
    cout<<"input 2 numbers:"<<endl;
    cin>>left>>right;
    yleft=f(left);
    yright=f(right);
    do{
        middle=(left+right)/2;
        ymiddle=f(middle);
        if(yright*ymiddle>0){
            right=middle;
            yright=ymiddle;
        }
        else{
            left=middle;
            yleft=ymiddle;
        }
    }while (fabs(ymiddle)>=1e-6);
    cout<<"Root is "<<middle;
    return 0;    
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值