CCF-CSP 如此编码 Java版答案

不得不说作为第一题它题目的长度是真的长,光读题都读了好久,

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner as=new Scanner(System.in);
        int n=as.nextInt();//题目数量
        int m=as.nextInt();//神秘数字
        int[] c=new int[n+1];//c值
        c[0]=1;
        int[] ti= new int[n+1];//选项数量为了方便计数ti[0]=0
        int[] b=new int[n+1];//这是B值,即答案
        int k=0;
        for (int i=1;i<=n;i++)
        {
            ti[i]=as.nextInt();//加入A值
            //添加C值
            if(i==1) c[i]=ti[i];
            else c[i]=c[i-1]*ti[i];
//  测试代码可删去          System.out.println("现在是"+ i+" 当前C值"+c[i]+"="+"/" );

        }

        for(int i=1;i<=n;i++)//计算b值
        {
            //破解并加载答案  这里是根据提示哪里的公式写的
             if(i==1){b[i]=m%c[i]/c[0]; k=c[0]*b[i];}//第一次的
             else{  b[i]=(m%c[i]-k)/c[i-1];    k=c[i-1]*b[i];}

//  测试代码可删去 System.out.println("b[i]是"+ b[i]+" "+m%c[i]+"-"+k+"/"+c[i-1] );

        }

        //打印
        for(int i=1;i<=n;i++)
        {
         System.out.print(b[i]+" ");

        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值