客似云来_抄送列表 _年会抽奖
客似云来
import java.util.*; import java.math.*; public class Main{ public static void main(String[] args){ long[] fib = new long[80];//long类型,保存每天的值! fib[0] = 1; fib[1] = 1; for(int i = 2;i<fib.length;i++){ fib[i] = fib[i-1]+fib[i-2]; } Scanner sc = new Scanner(System.in); while(sc.hasNextInt()){ int from = sc.nextInt(); int to = sc.nextInt(); long result = 0; //注意下标! for(int i = from-1;i<=to-1;i++){ result+=fib[i]; } System.out.println(result); } } }
抄送列表
// write your code here import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); String name = sc.nextLine(); String[] result = null; if(str.contains("\"")){ //包含了 " 需要#分隔人名! StringBuilder sb = new StringBuilder(); int flag = 1; for(int i = 0;i<str.length();i++){ if(str.charAt(i)=='\"'){// "标记! flag^=1; //如果进入一整个人名,就为 0 需要将 , 添加到sb中! }else if(flag==0&&str.charAt(i)==','){//人名中的空格需要添加进来! sb.append(","); }else if(str.charAt(i)==','){//非人名中的空格! sb.append("#"); //分割人名! }else{ sb.append(str.charAt(i)); } } //通过#划分! result = (new String(sb)).split("#"); }else{ //直接通过 , 划分人名! result = str.split(","); } int i = 0; for(i = 0;i< result.length;i++){ if(result[i].equals(name)){ System.out.println("Ignore"); break; } } if(i==result.length){ System.out.println("Important!"); } } } }
年会抽奖
一、什么是错排问题
举例:
- 十本不同的书放在书架,现重新摆放,使得每本书都不在原来的位置上,有几种摆法?
- 一个人给十个同学写信,但他把所有的信都装错了信封,问共有多少种错误的方式?
以上问题推广,就是错排问题。
一个n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的一个排列就称为原排列的一个错排。而研究一个排列的错排个数的问题,就称为错排问题(或称为更列问题)。
二、错排公式
n个元素的错排数记为D(n)
D(1)=0; D(2)=1; D(n)=D(n-1)(n-1)+D(n-2)(n-1)
import java.util.*; public class Main{ public static void main(String[] args){ long[] array = new long[21]; long[] array1 = new long[21]; array[0] = 0; array[1] = 0; array[2] = 1; array1[0] = 1; array1[1] = 1; array1[2] = 2; for(int i = 3;i<array.length;i++){ array[i] = (i-1)*(array[i-1]+array[i-2]); array1[i] = array1[i-1]*i; } Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); double result = 100.0*(array[n]/(double)array1[n]); System.out.printf("%5.2f%%\n",result); } } }