问题描述
小蓝和朋友们在玩一个报数游戏。由于今年是 20242024 年,他们决定要从小到大轮流报出是 2020 或 2424 倍数的正整数。前 1010 个被报出的数是:20,24,40,48,60,72,80,96,100,12020,24,40,48,60,72,80,96,100,120。请问第 202420242024202420242024 个被报出的数是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
public class One {
public static void main(String[] args){
System.out.println("2429042904288");
}
}
这个题很简单 ,我是直接算的答案
问题描述
对于一个有 nn 位的十进制数 N=d1d2d3…dnN=d1d2d3…dn,可以生成一个类斐波那契数列SS,数列 SS 的前 nn 个数为:
{S1=d1,S2=d2,S3=d3,…,Sn=dn}{S1=d1,S2=d2,S3=d3,…,Sn=dn}
数列 SS 的第 k(k>n)k(k>n) 个数为:
i=k−nk−1Sii=k−n∑k−1Si
如果这个数 NN 会出现在对应的类斐波那契数列 SS 中,那么 NN 就是一个类斐波那契循环数。
例如对于 197197,对应的数列 SS 为:
{1,9,7,17,33,57,107,197,…}{1,9,7,17,33,57,107,197,…}
197197 出现在 SS 中,所以 197197 是一个类斐波那契循环数。
请问在 00 至 107107 中,最大的类斐波那契循环数是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
package fifth;
import java.util.Arrays;
public class Two {
static int N=10000000;
public static void main(String[] args){
for(int i=N;i>0;i--){
if(fun(i)){
System.out.println(i);
break;
}
}
}
public static boolean fun(int a){
String s=a+"";
int l=s.length();
int[] num=new int[l];
for(int i=0;i<l;i++){
num[i]=s.charAt(i)-'0';
}
int sum=0;
for(int i=l;sum<a;i++){
sum=Arrays.stream(num).sum();
num[i%l]=sum;
}
if(sum==a) return true;
else return false;
}
}
这个题:倒序遍历+一个用于判断的函数
问题描述
小蓝最近学习了一种神奇的队列: 分布式队列。简单来说,分布式队列包含 NN 个节点(编号为 0 至 N−1N−1,其中 0 号为主节点),其中只有一个主节点,其余为副节点。
主/副节点中都各自维护着一个队列,当往分布式队列中添加元素时,都是由主节点完成的(每次都会添加元素到主节点对应的队列的尾部);副节点只负责同步主节点中的队列。可以认为主/副节点中的队列是一个长度无限的一维数组,下标为 0,1,2,3…0,1,2,3…,同时副节点中的元素的同步顺序和主节点中的元素添加顺序保持一致。
由于副本的同步速度各异,因此为了保障数据的一致性,元素添加到主节点后,需要同步到所有的副节点后,才具有可见性。
给出一个分布式队列的运行状态,所有的操作都按输入顺序执行。你需要回答在某个时刻,队列中有多少个元素具有可见性。
输入格式
第一行包含一个整数 NN,表示节点个数。
接下来包含多行输入,每一行包含一个操作,操作类型共有以下三种: addadd、syncsync 和 queryquery,各自的输入格式如下:
addelementaddelement: 表示这是一个添加操作,将元素 elementelement 添加到队列中;
syncfolloweridsyncfollowerid: 表示这是一个同步操作,followeridfollowerid 号副节点会从主节点中同步下一个自己缺失的元素;
queryquery: 查询操作,询问当前分布式队列中有多少个元素具有可见性。
输出格式
对于每一个 queryquery 操作,输出一行,包含一个整数表示答案。
package fifth;
import java.util.Scanner;
public class Three {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int[] a=new int[n];
while(scanner.hasNext()){
String act=scanner.next();
if(act.equals("add")){
int m=scanner.nextInt();
a[0]++;
}else if(act.equals("sync")){
int num=scanner.nextInt();
a[num]=Math.min(a[0],a[num]+1);
}else if(act.equals("query")){
int ans=a[0];
for(int i=1;i<n;i++){
ans=Math.min(ans,a[i]);
}
System.out.println(ans);
}
}
}
}
很简单的一个题,一开始题目看错了,走了弯路,所以说越简单的越要认真!
问题描述
SS 学校里一共有 a2a2 个两人寝、a3a3 个三人寝,a4a4 个四人寝,而食堂里有 b4b4 个四人桌和 b6b6 个六人桌。学校想要安排学生们在食堂用餐,并且满足每个寝室里的同学都在同一桌就坐,请问这个食堂最多同时满足多少同学用餐?
输入格式
采用多组数据输入。
输入共 q+1q+1 行。
第一行为一个正整数 qq 表示数据组数。
后面 qq 行,每行五个非负整数 a2,a3,a4,b4,b6a2,a3,a4,b4,b6 表示一组数据。
输出格式
输出共 qq 行,每行一个整数表示对应输入数据的答案。
样例输入
2 3 0 1 0 1 0 2 2 1 1
样例输出
6 10
package fifth;
import java.util.Scanner;
public class Four {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int q=scanner.nextInt();
for(int i=0;i<q;i++){
int MaxStu=0;
int a2=scanner.nextInt();
int a3=scanner.nextInt();
int a4=scanner.nextInt();
int b4=scanner.nextInt();
int b6=scanner.nextInt();
while(a4>0&&b4>0){
MaxStu+=4;
a4--;
b4--;
}
while(a2>=2&&b4!=0){
MaxStu+=4;
a2-=2;
b4--;
}
while(a2>0&&a4>0&&b6>0){
MaxStu+=6;
a2--;
a4--;
b6--;
}
while(a3>=2&&b6>0){
MaxStu+=6;
a3-=2;
b6--;
}
while(a2>=3&&b6>0){
MaxStu+=6;
a2-=3;
b6--;
}
while(a2>0&&a3>0&&b6>0){
MaxStu+=5;
a2--;
a3--;
b6--;
}
while(a4>0&&b6>0){
MaxStu+=4;
a4--;
b6--;
}
while(a2>=2&&b6>0){
MaxStu+=4;
a2-=2;
b6--;
}
while(a3>0&&b4>0){
MaxStu+=3;
a3--;
b4--;
}
while(a3>0&&b6>0){
MaxStu+=3;
a3--;
b6--;
}
while(a2>0&&b4>0){
MaxStu+=2;
a2--;
b4--;
}
while(a2>0&&b6>0){
MaxStu+=2;
a2--;
b6--;
}
System.out.println(MaxStu);
}
}
}
一看到这种题目就想跳过...因为没有什么头绪,但是这个好像还好,因为数据不是很大,然后要考虑的情况也还好,不是很多.
问题描述
小蓝开了一家宠物店,最近有一种 XX 病毒在动物之间进行传染,小蓝为了以防万一打算购买测试剂对自己的宠物进行病毒感染测试。
为了减少使用的测试剂数目,小蓝想到了一个好方法:将 NN 个宠物平均分为若干组,使得每组恰好有 KK 只宠物,这样对同一组的宠物进行采样并混合后用一个试剂进行检测,如果测试结果为阴性则说明组内宠物都未感染 XX 病毒;如果是阳性的话则需要对组内所有 KK 只宠物单独检测,需要再消耗 KK 支测试剂(当 K=1K=1 时,就没必要再次进行单独检测了,因为组内只有一只宠物,一次检测便能确认答案)。
现在我们已知小蓝的宠物被感染的概率为 pp,请问 KK 应该取值为多少才能使得期望的测试剂的消耗数目最少?如果有多个答案输出最小的 KK。
输入格式
第一行,一个整数 NN 。
第二行,一个浮点数 pp 。
输出格式
输出一行,一个整数 KK 表示答案。
样例输入
1000 0.05
样例输出
5
package fifth;
import java.util.Scanner;
public class six {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
double p=scanner.nextDouble();
int MinK=1;
double MinAll=Double.MAX_VALUE;
for(int k=n;k>=1;k--){
if(n%k!=0) continue;
double P=1-Math.pow(1-p,k);
double ans=(n/k)*(1+k*P);
if(ans<MinAll){
MinAll=ans;
MinK=k;
}else if(ans==MinAll){
MinK=Math.min(k,MinK);
}
}
System.out.println(MinK);
}
}
emm...数学题...看命,会就会,不会就gg...
哈哈,剩下三个我不写,你说我是会还是不会...