CodeForces 468A 24 Game 规律题

来源:互联网 发布:人工智能计算器v3.6.0 编辑:程序博客网 时间:2024/05/21 16:22

题目链接:点击打开链接

题意:

给定一个n表示有n个数字[1,n]

问:

用+ - * 3种运算把n个数变成24是否可行,若可行输出任意解。

思路:

因为2*3*4 = 24;

所以当n>=4时一定有解。

若n是偶数则4个连续数一组消成0,若还多余2个则变成 (n+1)-n = 1.

若n是奇数则把5消掉: 5-1 = 4; 4-2 = 2;。




import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Scanner;import java.util.Set;import java.util.TreeSet;public class Main {static int N = 200050;int n;public void work(){n = cin.nextInt();if(n < 4){out.println("NO");        out.close();return ;}out.println("YES");int m = n;if(n%2 == 1){out.println("5 - 1 = 4");out.println("4 - 2 = 2");n = 6;}else {out.println("1 * 2 = 2"); n = 5;}for(; n+3 <= m; n+=4){out.printf("%d - %d = 1\n", n+1, n);out.printf("%d - %d = -1\n", n+2, n+3);out.printf("-1 + 1 = 0\n");out.println("0 + 2 = 2");}if(n < m){out.printf("%d - %d = 1\n", n+1, n);out.println("1 * 2 = 2");}out.println("3 * 4 = 12");out.println("12 * 2 = 24");        out.close();}Main() {        cin = new Scanner(System.in);          out = new PrintWriter(System.out);    }      public static void main(String[] args) {        Main e = new Main();          e.work();    }    public Scanner cin;    public PrintWriter out;}


0 0
原创粉丝点击