zoukankan      html  css  js  c++  java
  • 算法入门经典 第四章

    程序4-1 组合数Cn^m
    #include<stdio.h>
    #include<string.h>
    #define maxn 10005
    long long C(int n,int m);
    int ans[maxn];
    int main()
    {
    long long m=C(4,2);
    printf("%ld",m);
    return 0;
    }

    long long C(int n,int m)
    {
    if(m<n-m) m=n-m;
    long long ans=1;
    for(int i=m+1;i<=n;i++) ans*=i;
    for(int i=1;i<=n-m;i++) ans/=i;
    return ans;
    }

    程序4-2 素数判定

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #define maxn 10005
    int is_prime(int n);
    int main()
    {
    long n=7;
    long long m=is_prime(n);
    if(m)
    printf("%d是素数",n);
    else
    printf("%d不是素数",n);
    return 0;
    }
    //素数 大于1的,只能被1和它自身整除的数
    int is_prime(int n)
    {
    if(n<=1) return 0;
    //floor(x+0.5) 对x进行四舍五入 另一方面页避免重复计算 sqrt(n)
    int m=floor(sqrt(n)+0.5);
    for(int i=2;i<=m;i++)
    if(n%i==0) return 0;
    else return 1;
    }


    程序4-6 交换两个数

    #include<stdio.h>
    #include<string.h>
    void swap(int *a,int *b);
    int main()
    {
    int a=3,b=4;
    swap(&a,&b);
    printf("%d %d",a,b);
    return 0;
    }
    void swap(int *a,int *b)
    {
    int t=*a;*a=*b;*b=t;
    //改成 int *t=*a,*a=*b;*b=*t是错误的
    //t存储的地址是什么,如果这个不确定的值代表的内存单元是恰能写入的,那这段程序将正常工作,如果是只读的,程序可能崩溃
    }

    程序4-9 计算左闭右开的元素和
    #include<stdio.h>
    #include<string.h>
    //变指针的指向
    int sum(int *begin,int *end)
    {
    int *p=begin;
    int ans=0;
    for(int *p=begin;p!=end;p++)
    {
    ans+=*p;
    }
    return ans;
    }
    int main()
    {
    int a[]={1,2,3,5,3,5};
    int m=sum(a+1,a+4);
    printf("%d",m);
    return 0;
    }


    //算出元素的个数
    #include<stdio.h>
    #include<string.h>
    int sum(int *begin,int *end)
    {
    int n=end-begin;
    int ans=0;
    for(int i=0;i<n;i++)
    {
    ans+=begin[i];
    }
    return ans;
    }
    int main()
    {
    int a[]={1,2,3,5,3,5};
    int m=sum(a+1,a+4);
    printf("%d",m);
    return 0;
    }

  • 相关阅读:
    ASCII码表
    arm linux 下移植busybox 的tftp
    Makefile中的路径
    Wireshark图解教程(简介、抓包、过滤器)【转载】
    在装有windows跟ubuntu的机器上重新安装windows后修复ubuntu的grub
    在linux里建立一个快捷方式,连接到另一个目录
    ubuntu 迁移部分 / 目录下的存储空间到 /home目录
    /etc/ntp.conf
    ntp 配置 autokey 功能【摘录】
    mips-openwrt-linux-gcc test_usbsw.c -o usbsw 编译问题
  • 原文地址:https://www.cnblogs.com/is-Tina/p/7338631.html
Copyright © 2011-2022 走看看