zoukankan      html  css  js  c++  java
  • 欧拉计划(Euler Project)——第一题到第三题

    题目一:

    10以下的自然数中,属于3和5的倍数的有3,5,6和9,它们之和是23.

    找出1000以下的自然数中,属于3和5的倍数的数字之和。

    package Blog1;
    
    public class First {
    
    	/**
    	 * 10以下的自然数中,属于3和5的倍数的有3,5,6和9,它们之和是23.找出1000以下的自然数中,属于3和5的倍数的数字之和。
    	 */
    	public static void main(String[] args) {
    		int sum=0;
    		for (int i=0;i<1000;i++){
    			if(i%3==0||i%5==0){
    				sum+=i;
    			}
    		}
    		System.out.println(sum);
    	}
    
    }
    

      

    233168
    

    本题总结:

      判断语句要善于用逻辑运算符。



    题目二:

    斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:

    1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

    考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。

    package Blog1;
    
    import java.util.ArrayList;
    
    public class Second {
    
    	/**
    	 * 斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:
    		1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
    	   考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。
    	 */
    	public static void main(String[] args) {
    		int a=1,b=2;
    		int sum=0;
    		while(b<4000000){
    			if(b%2==0){
    				sum+=b;
    			}
    			b=a+b;
    			a=b-a;
    		}
    		System.out.println(sum);
    	}
    }
    

     本题总结

    不要把问题复杂化:要目的明确,善于用while循环。



    题目三:

    13195的质数因子有5,7,13和29.

    600851475143的最大质数因子是多少?

     

    package Blog1;
    /**
     * 13195的质数因子有5,7,13和29.600851475143的最大质数因子是多少?
    */
    public class Third {
    	private static long JUG=600851475143L;
    	public static void main(String[] args) {
    		for(long i=1L;i<=JUG;i++){
    			if(JUG%i==0&&ifprime(i)){
    				System.out.println(i);
    			}
    		}
    	}
    	public static boolean ifprime(long temp){
    		boolean flag=true;
    		if(temp%2!=0L){
    			for(long i=2L;i<=(temp+1)/2;i++){
    				if(temp%i==0L){
    					flag=false;
    				}
    			}
    		}
    		return flag;
    	}
    }
    
    6857

      本题总结:

    1. int最大20亿,long型一定要加--L,否者编译通过不了
    2. 找出质数(int范围内)的方法优化如下
      public static boolean isPrime(int a) {    
            boolean flag = true;  
            if (a < 2) {// 素数不小于2  
                return false;  
            } else {  
                for (int i = 2; i <= Math.sqrt(a); i++) {  //循环到平方根即可
                    if (a % i == 0) {// 若能被整除,则说明不是素数,返回false  
                        flag = false;  
                        break;// 跳出循环  
                    }  
                }  
            }  
            return flag;  
        }  
    }  
    

      



     

     

  • 相关阅读:
    SQL分页存储过程——表名、返回的列、排序字段、排序类型、条件、页尺寸、页码
    SQL——触发器——插入触发器——边学边项目写的。
    SQL链表查询 数据库为空
    【错误积累】更新失败,数据包解压时出现错误!
    VS使用技巧(转)
    命令模式
    代理模式
    模板方法模式
    享元模式
    MongoDB 分片2
  • 原文地址:https://www.cnblogs.com/BoscoGuo/p/5895570.html
Copyright © 2011-2022 走看看