day01

1.给定数列 1,1,1,3,5,9,17,⋯1,1,1,3,5,9,17,⋯,从第 44 项开始,每项都是前 33 项的和。

求第 2019032420190324 项的最后 44 位数字。

注意tm的数组下标和取余就行,用大数反而更加麻烦

package daka;

import java.math.BigInteger;

/*1,1,1,3,5,9从第四项开始,每项都是前三项的和

* 2019324项的后四位数字s

*

*/

public class shulie {

public static void main(String[] args) {

int a[] = new int [20190325];

a[0] =a[1] =a[2] =1;

for(int i=3;i<20190325;i++) {

a[i] = (a[i-3] + a[i-2] + a[i-1]) % 10000;

}

System.err.println(a[20190323]);

}

}

2.求第2019个质数(小于等于Math.sqrt())

package daka;

public class testtt {

public static void main(String[] args) {

int count=0 ;

for(int i=2;i<Integer.MAX_VALUE;i++) {

if(isPrime(i)) {

count++;

}

if(count ==2019) {

System.out.println(i);

break;

}

}

}

public static boolean isPrime(int n) {

if (n <= 1) {

return false;

}

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0) {

return false;

}

}

return true;

}

}

3.乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。

package daka;

import java.util.Scanner;

/*

换瓶盖(训练思维)

*/

public class pgai {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

int cap = num;//初始瓶盖数

int ans = num;//喝到的饮料

while(cap >=3) {

int exc = cap /3;

ans +=exc;

cap = exc + cap % 3 ;

}

System.out.println(ans);

}

}

4.小蓝很喜欢吃巧克力,他每天都要吃一块巧克力。一天小蓝到超市想买一些巧克力。超市的货架上有很多种巧克力,每种巧克力有自己的价格、数量和剩余的保质期天数,小蓝只吃没过保质期的巧克力,请问小蓝最少花多少钱能买到让自己吃 �x 天的巧克力。

import java.util.*;

public class Main {

static class Chocolate implements Comparable<Chocolate> {

int price;

int count;

int expirationDate;

public Chocolate(int price, int count, int expirationDate) {

this.price = price;

this.count = count;

this.expirationDate = expirationDate;

}

@Override

public int compareTo(Chocolate o) {

if (price != o.price) {

return Integer.compare(price, o.price);

} else {

return Integer.compare(expirationDate, o.expirationDate);

}

}

}

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();

int x = scanner.nextInt();

Chocolate[] chocolates = new Chocolate[n];

for (int i = 0; i < n; i++) {

int price = scanner.nextInt();

int count = scanner.nextInt();

int expirationDate = scanner.nextInt();

chocolates[i] = new Chocolate(price, count, expirationDate);

}

Arrays.sort(chocolates);

int days = 0;

int money = 0;

for (int i = 0; i < n; i++) {

if (days == x) {

break;

}

if (chocolates[i].expirationDate >= x - days) {

int count = Math.min(chocolates[i].count, x - days);

money += count * chocolates[i].price;

days += count;

}

}

System.out.println(money);

}

}

总结:

填空题 :数组下标,取余,素数,训练思维。

耶耶!!!

(我爱梗佬,只是不知道他是不是0,)

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

螺上螺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值