竞赛积分猜想
来源:互联网 发布:hadoop2.7.1 windows 编辑:程序博客网 时间:2024/05/22 01:46
某公司举办了知识竞赛。题目的计分规则如下:
1.每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前得到的分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。
2.每位选手都有一个起步的分数为10分。
程序要求:
如果某获胜选手最终得分是X分,如果不让你看比赛过程,请推断出他(她)哪个题目答对了,哪个题目答错了吗?把答对的题目记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是一种可能的情况,10道题目的编号从左到右依次排列。
你的任务是算出满足该得分的所有可能情况,答案之间用|号分隔,并且答案需要进行排序,将答案转换为十进制后数字小的排在前面,即0010110011应该排在1010110011的前面。如果不存在满足该分数的情况,则输出10个0:0000000000
运行时间限制: 无限制
内存限制: 无限制
输入: 选手的得分,正整数。
输出: 满足输入得分的所有可能的情况,答案之间用|号分隔,并且答案需要进行排序,将答案转换为十进制后数字小的排在前面,即0010110011应该排在1010110011的前面。如果不存在满足该分数的情况,则输出10个0:0000000000
样例输入: 100
样例输出: 0010110011|0111010000|1011010000
import java.util.ArrayList;import java.util.List;public class Text {static boolean flag = false;static List<ArrayList<Integer>> list = new ArrayList<>();/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[] x = new int[10];// 测试cal(x, 0, 100);if (flag == false) {for (int i = 0; i < 9; i++) {System.out.print("0:0000000000|");}System.out.print("0:0000000000");} else {for (int j = 0; j < list.size() - 1; j++) {for (int temp : list.get(j)) {System.out.print(temp);}System.out.print("|");}for (int temp : list.get(list.size() - 1)) {System.out.print(temp);}}}/** * * @param arr * 数组 * @param scorecount * 分数 */public static boolean cal1(int[] arr, int scorecount) {int score = 10;for (int i = 0; i < arr.length; i++) {if (arr[i] == 0) {score = score - i - 1;} else {score = 2 * score;}}if (score == scorecount) {return true;} else {return false;}}/** * 递归调用 * * @param arr * 保存结果数组 * @param n * 下标 * @param score * 分数 */public static void cal(int[] arr, int n, int score) {if (n >= arr.length) {if (cal1(arr, score)) {ArrayList<Integer> temp = new ArrayList<>();for (int j : arr) {temp.add(j);}list.add(temp);flag = true;} return;}//对当前下标赋值,可为0或1 arr[n] = 0;//每次赋值进行判断当前结果是否符合cal(arr, n + 1, score);arr[n] = 1;cal(arr, n + 1, score);}}
- 竞赛积分猜想
- 竞赛积分猜想
- 山东省第五届ACM大学生程序设计竞赛-angry_birds_again_and_again(积分)
- 山东省第五届ACM大学生程序设计竞赛 angry_birds_again_and_again 求积分
- 猜想
- 猜想
- 积分
- 积分
- 积分
- 积分
- 积分
- 积分
- 积分
- 积分
- 积分?
- 积分
- 积分
- 积分?
- VC读取文件(exe、.doc、.chm等)
- PowerDesigner物理模型用法总结
- 把DEDE的在线文本编辑器换成Kindeditor不显示问题
- android图片涂鸦(标记)
- CityEngine创建不同类型的屋顶(二)
- 竞赛积分猜想
- 第二周hdu1282
- 简单查看和修改数据库的只读/读写属性
- XP安装VMware-viclient提示:microsoft virtual j# 2.0 second edition 安装程序返回错误代码“4121”
- Cocos2d-x学习之实现类似android的菜单栏tabbar效果
- 排序算法之归并排序
- php与oracle连接函数详解oci_connect
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- priority_queue用法