首页 > 代码库 > CodeForces 468A 24 Game 规律题

CodeForces 468A 24 Game 规律题

给定一个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;。




[java] view plaincopy技术分享技术分享
    1. import java.io.PrintWriter;  
    2. import java.util.ArrayList;  
    3. import java.util.Arrays;  
    4. import java.util.Collections;  
    5. import java.util.HashSet;  
    6. import java.util.Iterator;  
    7. import java.util.List;  
    8. import java.util.Scanner;  
    9. import java.util.Set;  
    10. import java.util.TreeSet;  
    11. public class Main {  
    12.     static int N = 200050;  
    13.     int n;  
    14.     public void work(){  
    15.         n = cin.nextInt();  
    16.         if(n < 4){  
    17.             out.println("NO");  
    18.             out.close();  
    19.             return ;  
    20.         }  
    21.         out.println("YES");  
    22.         int m = n;  
    23.         if(n%2 == 1){  
    24.             out.println("5 - 1 = 4");  
    25.             out.println("4 - 2 = 2");  
    26.             n = 6;  
    27.         }  
    28.         else {out.println("1 * 2 = 2"); n = 5;}  
    29.         for(; n+3 <= m; n+=4){  
    30.             out.printf("%d - %d = 1\n", n+1, n);  
    31.             out.printf("%d - %d = -1\n", n+2, n+3);  
    32.             out.printf("-1 + 1 = 0\n");  
    33.             out.println("0 + 2 = 2");  
    34.         }  
    35.         if(n < m){  
    36.             out.printf("%d - %d = 1\n", n+1, n);  
    37.             out.println("1 * 2 = 2");  
    38.         }  
    39.         out.println("3 * 4 = 12");  
    40.         out.println("12 * 2 = 24");  
    41.         out.close();  
    42.     }  
    43.     Main() {  
    44.         cin = new Scanner(System.in);    
    45.         out = new PrintWriter(System.out);  
    46.     }    
    47.     public static void main(String[] args) {  
    48.         Main e = new Main();    
    49.         e.work();  
    50.     }  
    51.     public Scanner cin;  
    52.     public PrintWriter out;  

CodeForces 468A 24 Game 规律题