sum

Java初学--第二章习题

孤者浪人 提交于 2020-02-07 10:21:38
经过这几天的学习,相信大家对Java有了更深的理解,那么今天我们就轻松一点,看看几道第二章的习题吧! 分析: 本题用到Scanner 扫描仪扫描器,是一个Java自带的一个类 主要负责的就是数据输入的问题 对于内存而言 数据的输入来源有很多 1.可以是从硬盘上读取数据 2.可以是从互联网上读取数据 3.可以是从输入设备(键盘)读取数据 步骤: 1.这里就需要导入Java中的输入包,import java.util.Scanner;紧接着,我们需要提示用户从键盘输入摄氏温度这个数据,输入语句“提示用户输入摄氏温度”。 2.题目中有华氏温度和摄氏温度两个变量,首先就得定义两个double型的变量,利用已知公式将摄氏温度转换为华氏温度。 3.将摄氏温度和华氏温度输出 代码展示: import java.util.Scanner; class Test01{ public static void main(String[] args){ System.out.print("请输入摄氏温度:");//第一步 Scanner scanner=new Scanner(System.in); double cel=scanner.nextDouble(); double fah=cel * 9 / 5 + 32;//第二步 System.out.println("摄氏温度" + cel + "

python基础学习day6作业

好久不见. 提交于 2020-02-07 08:52:11
1.计算从1到1000以内所有奇数的和并输出 num = 1 sum = 0 while num <= 1000 : sum += num num += 2 print ( '1到1000以内所有奇数的和为:' , sum ) 2.求1–100之间可以被7整除的数的个数 num = 1 count = 0 while num <= 100 : if num % 7 == 0 : count += 1 num += 1 print ( '1-100之间可以被7整除的数的个数为:' , count ) 3.计算从1到100以内所有3的倍数的和 num = 1 sum = 0 while num <= 100 : if num % 3 == 0 : sum += num num += 1 print ( '1到100以内所有3的倍数的和为:' , sum ) 4.计算从1到100以内所有能被3或者17整除的数的和并输出 num = 1 sum = 0 while num <= 100 : if num % 3 == 0 or num % 17 == 0 : sum += num num += 1 print ( '1到100以内所有能被3或者17整除的数的和为:' , sum ) 5.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数 num = 1 count = 0

洛谷1829:crash的数字表格

我是研究僧i 提交于 2020-02-07 08:07:51
洛谷1829:crash的数字表格 题意: 求 \(\sum_{i=1}^N\sum_{j=1}^Mlcm(i,j)\) 。 数据范围 \(:n,m\leq10^7\) 。 思路: 易得:原式 \[ \sum_{i=1}^N\sum_{j=1}^M\frac{ij}{gcd(i,j)}​ \] 枚举 \(gcd(i,j)=d\) 。 \[ \sum_{d=1}^{min(N,M)}\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)=d]\frac{ij}{d} \] 把 \(d\) 给提出来,其实就是将枚举项 \(i,j\) 看成是 \(di,dj\) 。 \[ \sum_{d=1}^{min(N,M)}\frac{1}{d}\sum_{i=1}^{\frac{N}{d}}\sum_{j=1}^{\frac{M}{d}}[gcd(i,j)=1]idjd.\\\sum_{d=1}^{min(N,M)}d\sum_{i=1}^{\frac{N}{d}}\sum_{j=1}^{\frac{M}{d}}[gcd(i,j)=1]ij \] 我们知道莫比乌斯函数的一个重要性质。 \[ \sum_{d|n}\mu(d)=[n=1] \] 代入可得: \[ \sum_{d=1}^{min(N,M)}d\sum_{i=1}^{\frac{N}{d}}\sum_{j=1}^{\frac

Java-8-IntStream接口

三世轮回 提交于 2020-02-07 04:48:40
Java-8-IntStream接口 interface IntStream extends BaseStream<Integer, IntStream> 下面这段代码计算菜单的热量: int calories = menu.stream() .map(Dish::getCalories) .reduce(0, Integer::sum); 这段代码有一个问题,它有一个暗含的装箱成本。每个 Integer 都必须拆箱成一个原始类型,再进行求和 要是可以直接像下面这样调用 sum 方法,岂不是很好: int calories = menu.stream() .map(Dish::getCalories) .sum(); 但这是不可能的。问题在于 map 方法会生成一个 Stream 。虽然流中的元素是 Integer 类型,但 Streams 接口没有定义 sum 方法 Java 8引入了三个原始类型特化流接口来解决这个问题: IntStream 、 DoubleStream 和LongStream ,分别将流中的元素特化为 int 、 long 和 double ,从而避免了暗含的装箱成本。每个接口都带来了进行常用数值归约的新方法,比如对数值流求和的 sum ,找到最大元素的 max 。此外还有在必要时再把它们转换回对象流的方法 生成流 IntStream of(int t)

Leetcode初学——N皇后

荒凉一梦 提交于 2020-02-07 00:45:58
题目: 分析: N皇后问题的本质是什么? 已占用的格子的行、列、对角线上都不能有棋子存在 每个格子之间的关系如下 行和列不重复是容易判断的,那么两个对角线该怎么判断呢? 蓝色的对角线上的格子有一个关系 : 行数+列数=常数 红色对角线上的格子也有一个关系 :行数-列数=常数 并且每个常数都不相同 对4皇后问题的一种解法作图: 上图可以较清楚的展示各个棋子之间的关系 那么这道题该怎么写呢? 我使用的是回溯法,以递归的形式,对每一个可能可以的格子进行遍历 代码: class Solution { private List<List<Integer>> list=new ArrayList<List<Integer>>(); public List<List<String>> solveNQueens(int n) { StringBuilder strs=new StringBuilder(); List<List<String>> res=new ArrayList<List<String>>(); for(int i=0;i<n;i++){ strs.append('.'); } String str=strs.toString(); HelpToSolveNQueens(n,new ArrayList<Integer>(),new ArrayList<Integer>(),new

六. python进阶(递归)

浪尽此生 提交于 2020-02-06 13:25:06
一 .递归 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数 。 递归函数: 一个会调用自身的函数称为递归函数凡是循环能干的事情 递归都能干方式: 写出临界条件 我这一次和上一次的关系 假设当前函数已经能用 调用自身计算上一次结果 在求出本次的结果 必须有一个明确的结束条件; 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧 。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出 import sys print(sys.setrecursionlimit(1000)) # sys.setrecursionlimit() #设置最大递归层数 print(sys.getrecursionlimit()) #获取最大递归层数 # RecursionError: maximum recursion depth exceeded while calling a Python object 递归的错误 最大的深度 def aa(): print("1111") aa()

Day04 - 循环结构

痴心易碎 提交于 2020-02-06 13:24:01
循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个"hello, world"这样的字符串并持续一个小时,我们肯定不能够将 print('hello, world') 这句代码写上3600遍,如果真的需要这样做那么编程的工作就太无聊了。因此,我们需要了解一下循环结构,有了循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的发生。在Python中构造循环结构有两种做法,一种是 for-in 循环,一种是 while 循环。 for-in循环 如果明确的知道循环执行的次数或者是要对一个容器进行迭代(后面会讲到),那么我们推荐使用 for-in 循环,例如下面代码中计算$\sum_{n=1}^{100}n$。 """ 用for循环实现1~100求和 Version: 0.1 Author: 二叔 """ sum = 0 for x in range(101): sum += x print(sum) 需要说明的是上面代码中的 range 类型, range

PDO count row values based on WHERE

≯℡__Kan透↙ 提交于 2020-02-06 09:07:21
问题 I looked over PHPDelusions website few times before asking this, as well as used Google but I still can't seem to get the code to work, or find a solution that remotely mirrors my question in general. I made a super simple PHP7 script for managing Receipts. The fields are simple. id (int 12), amount (varchar 8), category (int 2), date (date) The problem I'm facing is I'm trying to Count the Total Amount of money based on Categories . So let's say Category = 1 would count all Amounts with that

数据结构之算法时间复杂度

半城伤御伤魂 提交于 2020-02-06 05:30:39
原文链接 算法的时间复杂度定义为: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n}=0(f(n))。它表示随问题规模n的增大,算法执行时间的埔长率和 f(n)的埔长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f( n)是问题规横n的某个函数。 根据定义,求解算法的时间复杂度的具体步骤是: 找出算法中的基本语句   算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 计算基本语句的执行次数的数量级   只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的一点上:增长率。 用大Ο记号表示算法的时间性能   将基本语句执行次数的数量级放入大Ο记号中。 如何推导大o阶呢?我们给出了下面 的推导方法: 1.用常数1取代运行时间中的所有加法常数。 2.在修改后的运行次数函数中,只保留最髙阶项。 3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。 简单的说,就是保留求出次数的最高次幂,并且把系数去掉。 如T(n)=2n^2+n+1 =O(n^2) 例如: #include "stdio.h" int main

Huffuman树JAVA

痴心易碎 提交于 2020-02-06 05:26:30
问题描述   Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。   给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:   1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa +pb。   2. 重复步骤1,直到{pi}中只剩下一个数。   在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。   本题任务:对于给定的一个数列,现在请你求出用该数列构造Huffman树的总费用。 例如,对于数列{pi}={5, 3, 8, 2, 9},Huffman树的构造过程如下:   1. 找到{5, 3, 8, 2, 9}中最小的两个数,分别是2和3,从{pi}中删除它们并将和5加入,得到{5, 8, 9, 5},费用为5。   2. 找到{5, 8, 9, 5}中最小的两个数,分别是5和5,从{pi}中删除它们并将和10加入,得到{8, 9, 10},费用为10。   3. 找到{8, 9, 10}中最小的两个数,分别是8和9,从{pi}中删除它们并将和17加入,得到{10, 17},费用为17。   4. 找到{10, 17}中最小的两个数,分别是10和17,从{pi}中删除它们并将和27加入,得到