当前位置: 首页 > news >正文

wordpress汽车模板seo外包公司多少钱

wordpress汽车模板,seo外包公司多少钱,链接点开网页表白的网站怎么做的,防封号电销系统闲来无事总结3个我认为比较好的算法,很简单,但有趣。我们应该学会欣赏简单的东西,拒绝钻进复杂的东西里面,比如股市... 这三个算法分别为大数乘法,求交集算法,将一个数拆成连续整数和算法以及8位倒置算法。…

闲来无事总结3个我认为比较好的算法,很简单,但有趣。我们应该学会欣赏简单的东西,拒绝钻进复杂的东西里面,比如股市...
这三个算法分别为大数乘法,求交集算法,将一个数拆成连续整数和算法以及8位倒置算法。这些算法都非出自本人,但是本人实现了一个。
1.大数乘法:这个算法很著名,它可以突破计算机的限制从而计算一些很大的数,它的效率是重要的,但本文仅仅从逻辑角度来分析,先不分析时间空间复杂性。
我们人在计算乘法的时候用的是竖式,然后把每一行的结果加起来(位相错),最后得到答案,但是在计算机中,我见过很多算法是保留一个变量作为进位,最后一古脑把进位直接加到和里面,看惯了那种方法,看看下面方法如何,它可是完全和我们人的方法是一致的 :(作者源代码是错误,以下是我改正后的)

void main()

{

    string  num1,num2;//被乘数和乘数,考虑到大整数,用string装入

    cout<<"please input number1 and number2:"<

    cin>>num1>>num2;

    const char *p1=num1.c_str(); //转为char *

    const char *p2=num2.c_str();

    int length=strlen(p1)+strlen(p2);

    char *p=new char [length]; //结果放在字符数组中

    int i,j;

    for(i=0;i

    {

        p[i]='0';  //初始化结果数组,开始全为'0',对应数字0

    }

    p[i]='/0';

    int  carry=0; //进位初时设为0

    for(i=strlen(p1)-1;i>=0;--i)

    {

        carry=0;//每一行都将进位清0,绝对不影响下一循环

        for(j=strlen(p2)-1;j>=0;--j)

        {

            carry+=(p1[i]-'0')*(p2[j]-'0')+(p[i+j+1]-'0');

            p[i+j+1]=carry%10+'0';

            carry/=10;

        }

        p[i+j+1]=carry%10+'0';

    }

    int b =0;

    for(i=0;i

    {

      if(p[i]=='0'&&b == 0)

      {

          continue;

       }

       b = 1;

       cout<

    }

    cout<

    delete [] p;

}

2.求交集算法:
这个算法太老了,我发现很多时候都是用直接一个一个比较的办法求解,当然可以用哈希表,不过有点高射炮打蚊子的味道,于是我建议了一种算法(原创),实质上也是一个一个比较,但简捷了很多:

int main()

{

        int a[]={4,6,7,8,9,10,11,15};

        int b[]={2,3,4,6,7,9,10,11,15,20};

        int p1[16]={0};//把p1分配足够大即可,p1的长度是两个数组中最大的数加1,小小损失空间效率,如果有很大数的话

        int i = 0;

        for(i=0;i<8;i++)//此处的“i<8”是特殊情况,应该“i

        {

                p1[a[i]] = 1;

        }

        for(i=0;i<9;i++)//此处的“i<9”是特殊情况,应该“i

        {

                if(p1[b[i]]!=0)

                  printf("%d ",b[i]);//此处输出的就是结果!

        }

}

说明一点:数组可以不排序,乱续即可
3.将一个数拆成连续整数和算法
这个也很经典了,我的实现如下:

int main()

{

   int n = 123456;

   int i = 1;

   for( i = 1;i < n; i++ )

   {

      int j = 0;

      for( j = 0; j < n/i ; j++ )

      {

         if( 2*n == 2*i*j + i*i -i )//用等差数列推导

         {

             int q = j;

             int t = 0;

             for( t = 1; t <= i; t++ )

                t==i:printf( "%d ", q-- )?printf( "%d +", q-- );

             printf( "= %d/n", n );

         }

       }

   }

}

我的实现用的是等差数列:如果i是首数,那么i+i+1+i+1+1...这可以用等差数列表示。还有一种很好的办法(比我的好):

public class Test {

    public static void main(String[] args) {

        int left, right;

        int sum;

        //int given = Integer.parseInt(args[0]);

        int given = 27;//指定的数

        int count = 0;

        for (sum = 0  ,right=1; sum < given; sum += right, right++) {

        }

        for(left = 1,right--;left<=given/2;){

            if(sum>given)

                sum-=(left++);

            else{

               if(sum==given){

                  System.out.println(given+"= sum from "+left+"to"+ right);

                    count++;

                }

                sum+=(++right);

            }

        }

        if(count>0){

            System.out.println("一共有"+count+"解");

        }

        else{

            System.out.println("无解");

        }

    }

}

这 个算法实现了一种微调的思想,就是加加减减,细细品味吧。先将微调尺调到给定数据的大致位置,然后开始微调,也就是前面的继续加,加过了就从后面减,本身就有连续的思想在里面,就好像买瓜子,老大爷先大致给你个差不离,然后放到秤上,多了就减一点,少了就再加点,仔细想想,不是吗?
4.8位倒置:
这个算法在底层用的比较多,涉及到移位啊,等等的方法也不少,但是有一种二分法,其想法非常好,有点递归的意思,不信,看看:

x = (x & 0x55) << 1 | (x & 0xAA) >> 1;

x = (x & 0x33) << 2 | (x & 0xCC) >> 2;

x = x <<4 | x>>4;

很短,但很清晰,它将左右的概念从细到粗一步一步地逼近问题的答案,就好像一个分形一样,没有终点,但聚集起来就是一个美丽的事物,活了,真的!

http://www.lbrq.cn/news/2657899.html

相关文章:

  • 网上服务大厅12333北京seo百度推广
  • 找哪个网站做摩配百度人工服务热线24小时
  • 建筑设计资料网站免费推广公司
  • 东莞常平做网站腾讯与中国联通
  • 江油网站制作百度云搜索引擎入口官方
  • 陕西渭南住房和城乡建设厅网站网站浏览器
  • 网站建设分金手指专业十六seo会被取代吗
  • 南阳做网站多少费用专业郑州企业网站建设
  • 泊头网站制作深圳网络公司推广
  • 上海公安局 网站备案贵阳网站优化公司
  • 温州哪里有做网站学电商哪个培训学校好
  • 个人网站建设 优帮云英文seo实战派
  • 中山建设信息网站seo优化网站查询
  • 制作小诗集seo排名首页
  • 如何利用网站做淘宝客珠海网络推广公司
  • 如何做合格的新闻网站编辑今日新闻头条最新消息
  • 网站能否做二维码seo排名点击器曝光行者seo
  • 哈尔滨网站建设30t独立站seo怎么做
  • 北京个人网站开发制作seo的优化方案
  • 自己做的网站怎么上传文章seo搜索引擎优化内容
  • 免费动画制作网站品牌建设
  • html企业网站系统品牌设计
  • 淘宝客网站素材百度小说风云榜
  • 做片头网站百度服务中心电话
  • 网站的所有权东莞网站推广排名
  • 扬州哪里做网站好软件推广平台
  • 自助建网站专业seo服务商
  • 做网站买服务器简单免费制作手机网站
  • 在美国建设网站百度推广的广告真实可信吗
  • 怎么做百度网站线上线下一体化营销
  • 《算法导论》第 16 章 - 贪心算法
  • Spring Cloud系列—OpenFeign远程调用
  • C++高频知识点(二十)
  • QT常用控件三
  • 本地部署接入 whisper + ollama qwen3:14b 总结字幕
  • 机器学习(西瓜书)学习——绪论