附上本蒟蒻一开始写的代码,这个代码本蒟蒻实在是找不到什么问题,但是洛谷显示四个RE,希望有神犇可以在评论区指点我一下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int i,sum=0;//sum为每个月的剩余的钱
double cun=0;//存钱数
Scanner scanner=new Scanner(System.in);
int a[]=new int[12];
for(i=0;i<12;i++){
a[i]= scanner.nextInt();
}
for(i=0;i<12;i++){
sum=sum+300-a[i];//算出没个月的钱数:上个月的+300-本月
if(sum<0){
System.out.print("-"+(i+1)+" ");//输出没钱月份
System.exit(i);//直接结束程序
}
else{//本月有剩余的钱
if(sum>=100){//在有钱并且钱大于等于一百的情况下
while(sum>=100)//只要剩余钱数大于等于一百就一直循环
{
sum=sum-100;//这个月的钱就减去一百
cun=cun+100;//存的钱就加上一百
}
}
}
}
double tt=cun*1.2+sum;//算总钱数
System.out.printf("%.0f",tt);
}
}
在这里附上本蒟蒻用另一种方法写的AC代码(思想都是一样的,但是上面的就是不对):
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a[]=new int[12];
for(int i=0;i<12;i++){
a[i]= scanner.nextInt();
}
int yusuan=0,cun=0,geshu=0,shengyu=0;
double sum=0;
for(int i=0;i<12;i++){
yusuan=shengyu+300-a[i];
if(yusuan<0){
System.out.println("-"+(i+1));
System.exit(0);
}
else{
geshu=yusuan/100;
shengyu=yusuan-geshu*100;
if(shengyu>=0){
if(geshu>0){
cun=cun+100*geshu;
}
}
}
}
sum=cun*1.2+shengyu;
System.out.printf("%.0f",sum);
}
}