zoukankan      html  css  js  c++  java
  • C++课后题

    设计一个函数int digit(long n,int k),它返回整数n从右边开始第k个数字的值,若不存在第k个数字则返回-1。例如digit(123456,2)=5  digit(3456,6)=-1 //位数不够,返回-1

    #include<iostream>
    using namespace std;
    int digit(long n,int k)
    {
        long temp=n;int len=0;
        while(temp)
        {
            temp/=10;
            len++;
        }
        temp=n;
        if(k<0)
        return -1;
        if(k>len)
        return -1;
        int a=0;
        while(k)
        {
            a=temp%10;
            temp/=10;
            k--;
        }
        return a;
    }
    int main()
    {
        long n;int k;
        cin>>n>>k;
        cout<<digit(n,k);
        return 0;
    }

    写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用两个函数,并输出结果,两个整数由键盘输入。

    #include<iostream>
    using namespace std;
    int gcd(int a,int b)
    {
        int k=0;
        if(a<b)
        {
            k=b;
            b=a;
            a=k;
        }
        k=0;
        while(a%b!=0)
        {
            k=a%b;
            a=b;
            b=k;
        }
        return b;
    }
    int main()
    {
        int a,b,k=0;
        cin>>a>>b;
        k=gcd(a,b);
        cout<<k<<' '<<a/k*b;
        return 0;
        
    }

    求最大公约数用辗转相除法,大数除以小数取余数继续除下去

    最小公倍数等于两数相乘除以最大公约数

    进制转换

    #include<iostream>
    using namespace std;
    int toocr(int n)
    {
        int temp,outcome=0,i=1;
        while(n)
        {
            temp=n%8;
            outcome+=temp*i;
            i*=10;
            n/=8;
        }
        return outcome;
    }
    int main()
    {
        int n;
        cin>>n;
        cout<<toocr(n);
        return 0;
    }

    10转8

    #include<iostream>
    using namespace std;
    int toocr(int n)
    {
        int temp,outcome=0,i=1;
        while(n)
        {
            temp=n%2;
            outcome+=temp*i;
            i*=10;
            n/=2;
        }
        return outcome;
    }
    int main()
    {
        int n;
        cin>>n;
        cout<<toocr(n);
        return 0;
    }

    10转2

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int n, temp; string s = " ";
        cin >> n;
        if (n == 0)cout << 0;
        while (n)
        {
            temp = n % 16;
            n /= 16;
            if (temp < 10)
                s = char('0' + temp) + s;
            else
                s = char('A' + temp - 10) + s;
        }
        cout << s;
        return 0;
    }

    10转16

    400之内的亲密对数。所谓亲密对数,即A的所有因子(包含1但不包含其本身)之和等于B,而B的所有因子之和等于A

     220284220的因子是1245101120,224455110,它们之和为284,而284的因子是12471142,它们之和为220,所以220284为一对亲密对数

    #include<iostream>
    using namespace std;
    int sum(int n)
    {
        int sum=0;
        for(int i=1;i<n;i++)
        {
            if(n%i==0)
            sum+=i;
        }
        return sum;
    }
    int main()
    {
        int i,k;
        for(i=1;i<=400;i++)
        {
            k=sum(i);
            if(sum(k)==i&&i<k)
            cout<<i<<' '<<k<<endl;
        }
        return 0;
    }

    任意输入10个正整数,求出其中互不相同的数的个数num,以及此num个数中哪一个数的出现次数最多,共出现了几次。

    例如,当输入的10个数为:3241323538,则其中互不相同的数的个数num=6,而3出现次数最多,共出现了4次。

    #include<iostream>
    using namespace std;
    int main()
    {
        int s[10], p[10][2] = { 0 };
        int num = 0, maxnum = 0, max = 0;
        int j, i;
        for (i = 0; i < 10; i++)
        {
            cin >> s[i];
            for (j = 0; j < i; j++)
            {
                if (p[j][0] == s[i])
                {
                    p[j][1]++;
                    break;
                }
            }
            if (j >= i)
            {
                p[j][0] = s[i];
                num++;
                p[j][1]++;
            }
        }
        for (j = 0; j < 10; j++)
        {
            if (p[j][1] > maxnum)
            {
                maxnum = p[j][i];
                max = p[j][0];
            }
        }
        cout << num << ' ' << max << ' ' << maxnum;
        return 0;
    }
  • 相关阅读:
    (二)Spring Security 入门体验之——用户密码配置
    (一)Spring Security 入门体验
    (十二)权限之RBAC
    (十一)jwt详解
    (十)登录拦截器之前后端
    (九)优化登录页面
    (八)前后端整合之跨域问题
    SecureCRT 8.1.4 破解教程
    centOS配置网络(6.8)securCRT连接虚拟机
    二叉树的下一个节点(给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点)
  • 原文地址:https://www.cnblogs.com/dk2154/p/14179659.html
Copyright © 2011-2022 走看看