2019年3月

C 语言求1000以内的完数

#include <stdio.h> 
#include <math.h>

int main() {
    int i, a, b;
    
    for(i=1; i<=1000; i++) {
        b=0;
        for(a=1; a<=i/2; a++){
            if(i%a == 0){
                b=b+a;//把求出的因子都加起来 
            }
        }
        if(b == i){
            printf("%d its factors are ", i);
            for(a=1; a<=i/2; a++){
                if(i%a == 0){
                    printf(",%d", a);
                } 
            }
            printf("\n");
            //printf("%d 是完数\n", i);
        }
    } 
     
}

C 语言输出所有“水仙花数”

所谓“水仙花数”是指一个3位数,其各位数字立方和等于概述本身。例如,153是“水仙花数”,因为 153 = 1的立方 + 5的立方 + 3的立方

C 语言代码实现:

由于使用了 pow 函数(求 x 的 y 次幂/方,如 pow(2, 3),求的是 2的3次方
故我们需要引入头文件 math.h
#include <stdio.h> 
#include <math.h>

int main() {
    int i, a, b, c;
    
    for(i=111; i<999; i++) {
        a = (i/100)%10;//取百位数值 
        b = (i/10)%10;//取十位数值 
        c = i%10;//取个位数值 
        if(pow(a,3)+pow(b,3)+pow(c,3) == i){
            printf("%d\t", i);
        }
    } 
     
}

编译并运行的输出结果:

153     370     371     407
--------------------------------
Process exited after 0.2338 seconds with return value 0

JS 快速解析 URL

这篇文章会告诉如何用JS快速的解析一个URL,得到协议(protocol)、域名(host)、端口(port)、查询字符串(query)等信息。

使用 <a> 元素或 URL 对象快速解析:

function parseURL(url) {

  var a = document.createElement('a');

  a.href = url;

  // var a = new URL(url);

  return {

    source: url,

    protocol: a.protocol.replace(':', ''), 

    host: a.hostname,

    port: a.port,

    query: a.search,

    params: (function() {

      var params = {},

          seg = a.search.replace(/^\?/, '').split('&'),

          len = seg.length,

          p;

      for (var i = 0; i < len; i++) {

        if (seg[i]) {

           p = seg[i].split('=');

           params[p[0]] = p[1];

        }

      }

      return params;

   })(),

   hash: a.hash.replace('#', ''),

   path: a.pathname.replace(/^([^\/])/, '/$1')

  };

}

console.log(parseURL('https://test.com:8080/path/index.html?name=angle&age=18#top'));

转载自:http://ghmagical.com/article/page/id/SgIVenH42dyN