上海网站制作技术,公司做公司网站宣传,百度域名购买,互联网行业有哪些文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题
1.1题目
描述#xff1a; 今年公司年会的奖品特别给力#xff0c;但获奖的规矩却很奇葩#xff1a;
首先#xff0c;所有人员都将一张写有自己名字的字条放入抽奖箱中#xff1b;待所有… 文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题
1.1题目
描述 今年公司年会的奖品特别给力但获奖的规矩却很奇葩
首先所有人员都将一张写有自己名字的字条放入抽奖箱中待所有字条加入完毕每人从箱中取一个字条如果抽到的字条上写的就是自己的名字那么“恭喜你中奖了” 现在告诉你参加晚会的人数请你计算有多少概率会出现无人获奖 输入描述: 输入包含多组数据每组数据包含一个正整数n2≤n≤20 输出描述: 对应每一组数据以“xx.xx%”的格式输出发生无人获奖的概率
1.2思路
错排问题无人获奖的可能之和d[n] (n-1)*(d[n-1]d[n-2])所有可能之和n的阶乘无人获奖的概率等于无人获奖的可能之和/所有可能之和
1.3解题
import java.util.*;
public class Main {public static void main(String[] args) {long[] d new long[21];//错排数据d[0] 0;d[1] 0;d[2] 1;long[] f new long[21];//阶乘f[0] 1;f[1] 1;f[2] 2;// d[n] (n-1)*(d[n-1]d[n-2])for (int i 3; i 20; i) {d[i] (i - 1) * (d[i - 1] d[i - 2]);f[i] i * f[i - 1];}Scanner sc new Scanner(System.in);while (sc.hasNext()) {int n sc.nextInt();// 无人获奖的概率等于无人获奖的可能之和/所有可能之和double ret 100.0 * d[n] / f[n];System.out.printf(%.2f%%\n, ret);}}
}2.第二题
2.1题目
描述 NowCoder每天要处理许多邮件但他并不是在收件人列表中有时候只是被抄送。他认为这些抄送的邮件重要性比自己在收件人列表里的邮件低因此他要过滤掉这些次要的邮件优先处理重要的邮件。 现在给你一串抄送列表请你判断目标用户是否在抄送列表中。 输入描述: 输入有多组数据每组数据有两行。 第一行抄送列表姓名之间用一个逗号隔开。如果姓名中包含空格或逗号则姓名包含在双引号里。总长度不超过512个字符。 第二行只包含一个姓名是待查找的用户的名字姓名要完全匹配。长度不超过16个字符。 输出描述: 如果第二行的名字出现在收件人列表中则输出“Ignore”表示这封邮件不重要否则输出“Important!”表示这封邮件需要被优先处理
2.2思路
将名字存储到set中遍历set看能不能找到想找到的名字
2.3解题
import java.util.*;
public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);while(sc.hasNext()){String name sc.nextLine();String name1 sc.nextLine();HashSetString set new HashSet();int i 0;//名字的起始位置int end 0;//名字的终止位置while(i name.length()){if(name.charAt(i) ){//名字包含在中//找到名字的终止位置end name.indexOf(,i 1);//将名字的添加到setset.add(name.substring(i 1,end));//更新名字起始位置end1的位置是,所以此处是end2i end 2;}else{//名字没有包含在中end name.indexOf(,,i 1);//最后一个名字的添加if(end -1){set.add(name.substring(i,name.length()));break;}set.add(name.substring(i,end));i end 1;}}if(set.contains(name1)){System.out.println(Ignore);}else{System.out.println(Important!);}}}
}