精华内容
下载资源
问答
  • 展开全部public static void main(String[] args) {Scanner scan = new ...e68a84e8a2ad3231313335323631343130323136353331333365643539}System.out.println("小输出:");for (int m = num.length-1; m...

    展开全部

    public static void main(String[] args) { Scanner scan = new Scanner(System.in)。e68a84e8a2ad3231313335323631343130323136353331333365643539

    }

    System.out.println("从大到小输出:");

    for (int m = num.length-1; m >=0; m--) {

    System.out.println(num[m]);//从大到小输出

    }

    }

    String[] str = scan.nextLine().split(" "),// 输入时以空格隔开数字。

    int[] num = new int[str.length];//初始化一个整型数组,长度为你输入数字的个数。

    String[] str = scan.nextLine().split(" ");// 输入时以空格隔开数字

    int[] num = new int[str.length];//初始化一个整型数组,长度为你输入数字的个数

    for (int i = 0; i < str.length; i++) {

    num[i] = Integer.parseInt(String.valueOf(str[i]));//将字符转换为int型再赋给整型数组

    }

    Arrays.sort(num);//升序排序

    System.out.println("从小到大输出:");

    for (int j = 0; j < num.length; j++) {

    System.out.println(num[j]);//从小到大输出

    展开全文
  • 首先可以对分别对1位数,2位数,3位数,每位出现1的个数,分别寻找规律,通过仔细查看可以看到,每位1的个数与当前位上的有关系,并且与他高位的有关系,低位的也有关系。 具体如下:  假设N(个...

    首先可以对分别对1位数,2位数,3位数,每一位出现1的个数,分别寻找规律,通过仔细查看可以看到,每位1的个数与当前位上的数有关系,并且与他高位的数有关系,低位的数也有关系。


    具体如下:


       假设N(个,十,百,千……)位上的数字为0,那么N位上为1的个数为其高位的数字乘以当前的位(个,十,百,千,万……)

         假设N(个,十,百,千……)位上的数字为1,那么N位上为1的个数为其高位的数字乘以当前的位(个,十,百,千,万……),加上低位数+1(因为从0开始的)


      N位上的数字为其他的数字的时候,则其相当于高位的数字乘以当前的位,因为当前位大于1,因此会多出来0-99……个数来,所以高位应该是(高位数+1)*当前位


    #include<stdio.h>
    
    void count(int n)
    {
         int sum=0,iCurNum,iLowNum,iHighNum;
    	 int iFactor=1;//因子
    	
    	 while(n/iFactor!=0)
    	 {
    	   iLowNum  = n-(n / iFactor) * iFactor;
    	   iCurNum  = (n / iFactor) % 10;
    	   iHighNum = n / (iFactor * 10);
    		 switch(iCurNum)
    		{
    		case 0:sum += iHighNum*iFactor;break;
    		case 1:sum += iHighNum * iFactor + iLowNum + 1;break; 
    		default:
    			sum += (iHighNum+1) * iFactor;break	;
    		}
    		   iFactor *=10;
    	 }
    	printf("%d\n",sum);
    
    }
    
    void main(void)
    {
    	int n;
    	scanf("%d",&n);
    	count(n);
    
    }


    展开全文
  • Kubernetes 自从1.6起便号称可以承载 5000 个以上的节点,但是从数 5000 的路上,难免会遇到问题。 在 kubernetes 5000 之路上的经验,包括遇到的问题、尝试解决问题以及找到真正的问题。 1、 问题1 ~ 500 ...
    • Kubernetes 自从1.6起便号称可以承载 5000 个以上的节点,但是从数十到 5000 的路上,难免会遇到问题。
    • 在 kubernetes 5000 之路上的经验,包括遇到的问题、尝试解决问题以及找到真正的问题。

    1、
    问题一:1 ~ 500 个节点之后
    问题:kubectl 有时会出现 timeout ( p.s. kubectl -v=6 可以显示所有 API 细节指令)

    尝试解决:
    一开始以为是 kube-apiserver 服务器负载的问题,尝试增加 proxy 做 replica 协助进行负载均衡
    但是超过 10 个备份 master 的时候,发现问题不是因为 kube-apiserver 无法承受负载,GKE 通过一台 32-core VM 就可以承载 500 个节点

    原因:
    排除以上原因,开始排查 master 上剩下的几个服务(etcd、kube-proxy)
    开始尝试调整 etcd
    通过使用datadog查看 etcd 吞吐量,发现有异常延迟(latency spiking ~100 ms)
    通过Fio工具做性能评估,发现只用到 10%的 IOPS(Input/Output Per Second),由于写入延迟(write latency 2ms)降低了性能
    尝试把 SSD 从网络硬盘变为每台机器有个 local temp drive ( SSD )
    结果从~100ms —> 200us

    2、
    问题二:~1000 个节点的时候
    问题:发现 kube-apiserver 每秒从 etcd 上读取 500mb

    尝试解决:
    通过Prometheus查看 container 之间的网络流量

    原因:
    发现Fluentd和 Datadog 抓取每个节点上资料过于频繁
    调低两个服务的抓取频率,网络性能从 500mb/s 降低到几乎没有
    etcd 小技巧:通过--etcd-servers-overrides可以将 Kubernetes Event 的资料写入作为切割,分不同机器处理,如下所示
    --etcd-servers-overrides=/events#https://0.example.com:2381;https://1.example.com:2381;https://2.example.com:2381

    3、
    问题三:1000 ~ 2000 个节点
    问题:无法再写入数据,报错 cascading failure
    kubernetes-ec2-autoscaler 在全部的 etcd 都停掉以后才回传问题,并且关闭所有的 etcd

    尝试解决:
    猜测是 etcd 硬盘满了,但是检查 SSD 依旧有很多空间
    检查是否有预设的空间限制,发现有 2GB 大小限制

    解決方法:
    在 etcd 启动参数中加入--quota-backend-bytes
    修改 kubernetes-ec2-autoscaler 逻辑——如果超过 50%出现问题,关闭集群
    各种服务的优化
    Kube masters 的高可用
    一般来说,我们的架构是一个 kube-master (主要的 Kubernetes 服务提供组件,上面有 kube-apiserver、kube-scheduler 和 kube-control-manager )加上多個 slave。但是要达到高可用,要参考一下方式实现:

    kube-apiserver 要设置多个服务,并且通过参数--apiserver-count重启并且设定
    kubernetes-ec2-autoscaler 可以帮助我们自动关闭 idle 的资源,但是这跟 Kubernetes scheduler 的原则相悖,不过通过这些设定,可以帮助我们尽量集中资源。
    {
    "kind" : "Policy",
    "apiVersion" : "v1",
    "predicates" : [
    {"name" : "GeneralPredicates"},
    {"name" : "MatchInterPodAffinity"},
    {"name" : "NoDiskConflict"},
    {"name" : "NoVolumeZoneConflict"},
    {"name" : "PodToleratesNodeTaints"}
    ],
    "priorities" : [
    {"name" : "MostRequestedPriority", "weight" : 1},
    {"name" : "InterPodAffinityPriority", "weight" : 2}
    ]
    }
    以上为调整 kubernetes scheduler 范例,通过调高 InterPodAffinityPriority 的权重,达到我们的目的。更多示范参考范例.

    需要注意的是,目前 Kubernetes Scheduler Policy 并不支持动态切换,需要重启 kube-apiserver(issue: 41600)

    4、
    调整 scheduler policy 造成的影响
    OpenAI 使用了KubeDNS ,但不久后发现

    问题:
    经常出现 DNS 查询不到的情况(随机发生)
    超过 ~200QPS domain lookup

    尝试解决:
    尝试查看为何有这种状态,发现有些 node 上跑了超过 10 个 KuberDNS

    解决方法:
    由于 scheduler policy 造成了许多 POD 的集中
    KubeDNS很轻量,容易被分配到同一节点上,造成 domain lookup 的集中
    需要修改 POD affinity (相关介绍),尽量让KubeDNS分配到不同的 node 之上
    affinity:
    podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:

    • weight: 100
      labelSelector:
      matchExpressions:
      • key: k8s-app
        operator: In
        values:
        • kube-dns
          topologyKey: kubernetes.io/hostname

    5、
    新建节点时 Docker image pulls 缓慢的问题

    问题:
    每次新节点建立起来,docker image pull 都要花 30 分钟

    尝试解决:
    有一个很大的 container image Dota,差不多 17GB,影响了整个节点的 image pulling
    开始检查 kubelet 是否有其他 image pull 选项

    解决方法:
    在 kubelet 增加选项--serialize-image-pulls=false来启动 image pulling,让其他服务可以更早地 pull (参考:kubelet启动选项)
    这个选项需要 docker storgae 切换到 overlay2 (可以参考docker 教学文章)
    并且把 docker image 存放到 SSD,可以让 image pull 更快一些
    补充:source trace
    // serializeImagePulls when enabled, tells the Kubelet to pull images one
    // at a time. We recommend not changing the default value on nodes that
    // run docker daemon with version < 1.9 or an Aufs storage backend.
    // Issue #10959 has more details.
    SerializeImagePulls *bool json:"serializeImagePulls"
    提高 docker image pull 的速度
    此外,还可以通过以下方式来提高 pull 的速度

    kubelet 参数--image-pull-progress-deadline要提高到 30mins docker daemon 参数max-concurrent-download调整到 10 才能多线程下载

    6、
    网络性能提升
    Flannel 性能限制

    问题:
    OpenAI 节点间的网络流量,可以达到 10-15GBit/s,但是由于 Flannel 所以导致流量会降到 ~ 2GBit/s

    解决方式是拿掉 Flannel,使用实际的网络
    hostNetwork: true
    dnsPolicy: ClusterFirstWithHostNet

    展开全文
  • java中System.currentTimeMillis()取的是1970-01-01 00:00:00.000当前时间的毫秒个long类型的值。 现在oracle数据库中某表中存取的是该值,需要将其转换为可读的date类型。 current millis中提供了...

    java中System.currentTimeMillis()取到的是从1970-01-01 00:00:00.000到当前时间的毫秒数,一个long类型的值。

    现在oracle数据库中某表中存取的是该值,需要将其转换为可读的date类型。

    current millis 中提供了TimeMillis的转换结果以及一些常用的转换方法。

    但是其中关于pl/sql取得的数是精确到千毫秒,而不是精确到毫秒。

    整理了一个包来进行currentTimeMillis到date的转换。

    注意:System.currentTimeMillis()取得的是当前时区的时间,所以在转换的时候需要注意时区的转换。

    select sessiontimezone,dbtimezone,sysdate,current_date from dual;

     

    CREATE OR REPLACE PACKAGE cux_time_utils_pkg IS
    
        FUNCTION unix_timestamp_to_utc_date(in_unix_timestamp IN NUMBER) RETURN DATE DETERMINISTIC;
    
        FUNCTION unix_timestamp_to_session_date(in_unix_timestamp IN NUMBER) RETURN DATE DETERMINISTIC;
    
        FUNCTION date_to_unix_timesecond(in_date IN DATE) RETURN NUMBER DETERMINISTIC;
    
        FUNCTION date_to_unix_times_millis(in_date IN DATE) RETURN NUMBER DETERMINISTIC;
    
        FUNCTION java_currenttimemillis RETURN NUMBER;
    
        FUNCTION current_unix_times_millis RETURN NUMBER DETERMINISTIC;

        --时间格式转格林威治时间
          FUNCTION date_to_gmt_time(p_date IN DATE) RETURN VARCHAR2;

    END

     

    CREATE OR REPLACE PACKAGE BODY cux_time_utils_pkg IS
    
        --return utc0 date
        --返回0时区时间
        FUNCTION unix_timestamp_to_utc_date(in_unix_timestamp IN NUMBER) RETURN DATE DETERMINISTIC IS
            v_date DATE;
        BEGIN
            v_date := to_date('1970-01-01',
                              'yyyy-mm-dd') + in_unix_timestamp / 1000 / 60 / 60 / 24;
            RETURN v_date;
        END;
    
        --return sessiontimezone date
        --返回当前回话时区时间
        --select sessiontimezone,dbtimezone,sysdate,current_date from dual;
        FUNCTION unix_timestamp_to_session_date(in_unix_timestamp IN NUMBER) RETURN DATE DETERMINISTIC IS
            v_date DATE;
        BEGIN
            v_date := to_date('1970-01-01',
                              'yyyy-mm-dd') + in_unix_timestamp / 1000 / 60 / 60 / 24 +
                      to_number(substr(tz_offset(sessiontimezone),
                                       1,
                                       3)) / 24;
            RETURN v_date;
        END;
    
        --返回1970-01-01 00:00:00到in_date之间的秒数
        FUNCTION date_to_unix_timesecond(in_date IN DATE) RETURN NUMBER DETERMINISTIC IS
            v_unix_timestamp NUMBER;
        BEGIN
            v_unix_timestamp := (in_date - to_date('1970-01-01',
                                                   'yyyy-mm-dd')) * 60 * 60 * 24;
            RETURN v_unix_timestamp;
        END;
    
        --返回1970-01-01 00:00:00到in_date之间的毫秒数
        --此方法不够精确,因为in_date精度为秒,所以返回值的精度为千毫秒
        --可调整入参结构为timestamp,再进行优化
        FUNCTION date_to_unix_times_millis(in_date IN DATE) RETURN NUMBER DETERMINISTIC IS
            v_unix_timestamp NUMBER;
        BEGIN
            v_unix_timestamp := (in_date - to_date('1970-01-01',
                                                   'yyyy-mm-dd')) * 1000 * 60 * 60 * 24;
            RETURN v_unix_timestamp;
        END;
    
        --返回java的当前毫秒数
        FUNCTION java_currenttimemillis RETURN NUMBER AS
            LANGUAGE JAVA NAME 'java.lang.System.currentTimeMillis() return java.lang.Integer';
    
    
        --返回当前时间的毫秒数
        FUNCTION current_unix_times_millis RETURN NUMBER DETERMINISTIC IS
            v_unix_timestamp NUMBER;
        BEGIN
            v_unix_timestamp := extract(DAY FROM(systimestamp - to_timestamp('1970-01-01',
                                                                         'YYYY-MM-DD'))) * 1000 * 60 * 60 * 24 +
                                to_number(to_char(sys_extract_utc(systimestamp),
                                                  'SSSSSFF3'));
            RETURN v_unix_timestamp;
        END;

       

        --时间格式转格林威治时间
        FUNCTION date_to_gmt_time(p_date IN DATE) RETURN VARCHAR2 IS
          l_return_str VARCHAR2(50);
        BEGIN
          IF p_date IS NOT NULL THEN
            SELECT to_char(p_date, 'YYYY-MM-DD') || 'T' ||
                 to_char(p_date, 'HH24:MI:SS') || '.000+08:00'
            INTO l_return_str
            FROM dual;
          ELSE
          l_return_str := NULL;
          END IF;

          RETURN l_return_str;

        END;

    END;

     

    参考:

    https://currentmillis.com/

    http://stackoverflow.com/questions/2824710/oracle-equaivalent-of-java-system-currenttimemillis

    http://stackoverflow.com/questions/4312514/get-date-from-a-long-var-char-milliseconds-value-stored-in-oracle-database

    http://developer-should-know.com/post/77394226827/converting-between-milliseconds-and-dates-in

     

    转载于:https://www.cnblogs.com/huanghongbo/p/6030455.html

    展开全文
  • java中System.currentTimeMillis()取的是1970-01-01 00:00:00.000当前时间的毫秒个long类型的值。现在oracle数据库中某表中存取的是该值,需要将其转换为可读的date类型。current millis中提供了...
  • 给定个二叉树,它的每个结点都存放个 0-9 的数字,每条叶子节点的路径都代表个数字。 例如,叶子节点路径 1->2->3 代表数字 123。 计算叶子节点生成的所有数字之和。 说明: 叶子节点...
  • 接着质数,补充没有写完的部分 昨天开始学校开始停水停电停网,我含泪用点自己最后的电量和流量改善之前的代码,改善后的代码如下“打印21000的所有素数,每行显示8个素数”。续~~
  • 导读:容器服务 Kubernetes 是目前炙手可热的云原生基础设施,作者过去一年上线了一个用户极速增长的应用:该应用一个月内日活用户零至四万,用户数从到一亿的裂变式增长,充分享受了容器服务快速简便的扩容...
  • 个数字中1的个数

    2015-06-04 19:58:00
    输入个整数n,求从1到n这n个整数的十进制表示中1出现的次数。 如18出现了1 10 11 12 13 14 15 16 17 18 总计10次 例如个5位数x=48292 万位数 10000-19999共有10000个 位数 5*(1000)此时万位数的取值可以...
  • 可玩开加密货币投资的小伙伴们可真的傻了眼,你要晓得,今年1月份的时候,ETH以太坊的最高价格曾达到1343美元!即使在天前的8月13日,价格也有321.8美元。2018这一年对币圈来说就个字:“崩”。这种崩溃已经不能...
  • 1.音质均衡度 声道选择:我们所说的声道主指音箱内置的扬声器数量,一般包括:单声道、立体声道、2.0声道、2.1声道、5.1声道。2.0声道是指有两个扬声器,有2个声道功率的输出,这也是最适合居家和出游旅行使用的声道...
  • 用于硬盘、U盘、操作系统、数据库等文件系统。 B树一般几个分叉,小的也有几百个分叉。 B树层一般不多,几层左右(保证读盘次数尽可能少...硬盘中读取部分数据内存,然后在内存中用红黑树操作。 ...
  • 30.在 1 n 的正数中 1 出现的次数(数组)题目:输入个整数 n,求 1 n 这 n 个整数的十进制表示中 1 出现的次数。例如输入 12, 1 12 这些整数中包含 1 的数字有 1, 10, 1 1 和 12, 1 一共出现...
  • 题目描述 输入个整数 n ,求1~n这n个整数的十进制表示中1出现的次数 例如,1~13中包含1的数字有1、10、11、12、13因此共出现6次 ...这样也是对每进行个十百位的判断并计数,不过这样是在.
  • Tom教授正在给研究生讲授一门关于基因的课程,有件事情让他颇为头疼:条染色体上有成千上万个碱基对,它们0开始编号,几百万,几千万,甚至上亿。  比如说,在对学生讲解第1234567009号位置上的碱基时,光...
  • 题目描述 ...ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 n 中1出现的次数)。 将拆分为个十百位来分别判断是否为1 int NumberOf1Betw...
  • 使用列表能够在个变量中存储任意数量的信息,从而高效地处理数据:只需几行代码,你就能够处理百、数千乃至百万个值。 第5章讲解使用if语句来编写这样的代码:在特定条件满足时采取种措施,而在该条件不满足...
  • 1月7日消息,据36氪报道,工业互联网平台企业航天智控于近日完成数千万元A轮融资,由启赋资本领投、银杏谷资本跟投。公司将进一步完善智能运维云平台和智能算法体系建设,满足多行业客户需求。 一直以来,工业...
  • 从1到n的n个数字 十进制表示 1出现的次数 肯定是数学题找规律呗 比如输入数字是21345 分而治之 1-1345 1346-21345 先求第二段 万位是 一共1w个 然后再分称1346-11345 11346-21345 每段的四个数字中 其中个是1 ...
  • 1月7日消息,据36氪报道,工业互联网平台企业航天智控于近日完成数千万元A轮融资,由启赋资本领投、银杏谷资本跟投。公司将进一步完善智能运维云平台和智能算法体系建设,满足多行业客户需求。 一直以来,工业...
  • * 定义变量2从1到100,如果j从1到i,i对j求余运算只有两次满足为零 * (被1和它自身整除时),那么就可以认为这个是素数,就可以输出了。 */ // 质数和 int sum2 = 0; // 多少个质数 int count2 = 0; for...
  • 与此同时曾凭一己之力将开源项目BaseRecyclerViewAdapterHelper冷启动,0到1做到了同类开源项目中star排行的第,在此期间,开发团队由1人变成8人,使用人数辐射成数千名开发者。我想,除了自身的技术能力之外,...
  • Docker是基于GO语言实现的云开源项目。 Docker的主要目标是通过对应用组件的封装,分发,部署,运行达成“次封装,处处运行“。...资源要求少,个主机运行数千个Docker容器 通过类似GIT方式方便用户获取,分发...
  • 方法一: #include &lt;stdio.h&gt; int main() ... i++) // 放入一千检验是否是完数。 { for(j = 1; j &lt; i ; j++) // i 除以 2 开始 (i-1)。 { if ( i % j == ...
  • Hadoop软件库是个利用简单的编程模型在大量计算机集群上对大型数据...Hadoop还能够单台服务器扩展到数千台计算机,检测和处理应用程序层上的故障,从而提高可靠性。1、HadoopCommon:Thecommonutilitiesthatsupport

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 594
精华内容 237
关键字:

从1数到一千