首页 > 试题广场 >

数字游戏

[问答题]

数字游戏

【题目描述】

真是一个无聊的夜晚啊,小B和小C在宿舍中实在无聊之极,因此决定玩一个数字游戏打发时间。小B首先开始,她给小C的问题是:

给定任意一个整数,小C可以交换该数中任意的不同位,能够得到的最小数值是多少?前提是不能有前导0。

小C很快就给出了一个答案,小B希望你来帮她检验答案的正确性,你能帮忙吗?

输入

输入中有多组测试数据。每组测试数据的第一行为一个没有前导0的整数n(0=< n =< 10^9),第二行为另一个整数m(0=<m=<10^9),小C给出的问题答案。

输出

对每组测试数据,在单独的行中输出结果,若小C的答案是正确的,输出YES,否则输出NO。

样例输入

3310

1033

4

5

样例输出

YES

NO

ゞ头像
<script type="text/javascript">
	function numGame(a,b){
		var newArr = [];
		for(var i = 0;i<a.length;i++){
			var q= a.substring(i,i+1);
			newArr.push(q);
		}
		newArr.sort();
		if(newArr[0] == 0){
			var temp = newArr[0];
			newArr[0] = newArr[1];
			newArr[1] = temp;
		}
		var c = newArr.join("");
		if(c == b){
			console.log("YES");
		}else{
			console.log("NO");
		}
	}
	numGame("8902","2089");
</script>

发表于 2017-08-10 17:05:22 回复(2)
 package test2;

import java.util.Arrays;
import java.util.Scanner;

/**
 * Created by lixusheng on 2017/8/7.
 */
public class Main10 {

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String a,b;
        char[] arr1,arr2;
        while(input.hasNext()){
            a=input.next();
            b=input.next();
            arr1=a.toCharArray();
            arr2=b.toCharArray();
            Arrays.sort(arr1);
            int i=0;
            while(arr1[i]=='0'){
                i++;
            }
            char temp =arr1[i];
            arr1[i]=arr1[0];
            arr1[0]=temp;
            int flag=0;
            for(int j=0;j<arr1.length;j++){
                if(arr1[j]!=arr2[j]){
                  flag=1;
                }
            }

            if(flag==1){
                System.out.println("NO");
            }else {
                System.out.println("YES");
            }
        }
    }
}

发表于 2017-08-07 21:29:05 回复(0)
java实现:
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        long num = scanner.nextLong();
        System.out.println("最小的数是:"+findMinNum(num));
    }

    private static long findMinNum(long num) {
        char[] chars = (num + "").toCharArray();
        Arrays.sort(chars);
        for (int i = 0; i < chars.length; i++) {
            if (chars[0] == '0') {
                for (int j = i + 1; j < chars.length; j++) {
                    if (chars[j] != 0) {
                        char temp = chars[0];
                        chars[0] = chars[j];
                        chars[j] = temp;
                        break;
                    }
                }
            }
        }
        String str = new String(chars);
        long minNum=Long.parseLong(str);
        return minNum;
    }
请输入一个整数:141840329031540
最小的数是:100011233444589
发表于 2019-09-07 21:02:30 回复(0)
a=input('输入一个数:\n')
b=input('最小值:')
l=list(a)
c=sorted(l)
n=0
if c[0]!='0':
    for i in range(len(c)):
        n=n+int(c[i])*(10**(len(c)-i-1))
else:
    for i in range(len(c)):
        if c[i]!='0':
            m=i
            break
    n=int(c[m])*(10**(len(c)-1))        
    for i in range(m+1,len(c)):
        n=n+int(c[i])*(10**(len(c)-i-1))
if int(b)==n:
    print('yes')
else:
    print('no')       
                

发表于 2018-03-20 20:13:01 回复(0)
public class GussNumberTest { public static void main(String[] args) { getMinValue(1120000,1000012); } public static void getMinValue(int m,int n) { //把输入的int类型转换为String类型 String str1 = String.valueOf(m); //把字符串转换为字符数组进行操作 char[] c = str1.toCharArray(); //把字符数组中的元素进行自然排序 Arrays.sort(c); //如果第一个元素是0 往下遍历找到第一个不为0的元素 交换位置跳出循环 for(int i = 0;i < c.length;i++) { if(c[0] == 48 && c[i] != 48) { c[0] = c[i]; c[i] = 48; break; } } /*//此时数组中存放的就是最小值但是 数据类型是字符数组 需要转换为int与n做比较 for(char cd : c) { System.out.println(cd); }*/ //将char数组转换为String类型 String str2 = String.copyValueOf(c); //将字符串转换为int类型 int a = Integer.parseInt(str2); if(a == n) System.out.println(m+ " "+"是最小值"); else System.out.println("不是最小值"+" "+"最小值是:"+a); } }
发表于 2017-08-28 21:32:07 回复(0)
 
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
            String str1 = sc.next();
            String str2 = sc.next();
            smallNum(str1,str2);
        }
    }
    static void smallNum(String str1, String str2){
        if(str1.length()==1){
            if(str1.equals(str2)){
                System.out.println("YES");
            }else System.out.println("NO");
            return;
        }
        char[] chars  = str1.toCharArray();
        Arrays.sort(chars,0,chars.length);
        for (int i = 0; i <chars.length ; i++) {
            if(chars[i]!='0'){
                char tmp = chars[0];
                chars[0] = chars[i];
                chars[i] = tmp;
                break;
            }
        }
        if(String.valueOf(chars).equals(str2)){
            System.out.println("YES");
        }else System.out.println("NO");
        return;
    }
}

发表于 2017-08-12 21:12:16 回复(0)
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
void compareAB(long long A, long long B)
{
    string strA, strB;
    strA = to_string(A);
    strB = to_string(B);
    sort(strA.begin(), strA.end());
    for (int i=0; i<strA.length(); ++i)
    {
        if(strA[i] != '0')
        {
            if (i != 0)
            {
                char tmp = strA[0];
                strA[0] = strA[i];
                strA[i] = tmp;
            }
            break;
        }
    }
    if(strA.compare(strB) != 0)
        cout<<"NO"<<endl;
    else
        cout<<"YES"<<endl;

}
int main()
{
    long long A;
    long long B;
    cin>>A;
    cin>>B;
    compareAB(A, B);

    return 0;
}

发表于 2017-08-09 17:44:14 回复(0)
import java.util.Arrays; import java.util.Scanner;  /**  * Created by Administrator on 2017-08-08.  */ public class Main{ public static void main(String[] args) {
        Scanner in = new Scanner(System.in);  String str1 = in.nextLine();  String str2 = in.nextLine();  boolean yes = true;  if(str1.length() != str2.length())
            yes = false;  else { if(str1.length() == 1) { if( !str1.equals(str2))
                    yes = false;  } else { char[] ch1 = str1.toCharArray();  Arrays.sort(ch1);  int i;  for ( i = 0; i < ch1.length; i++ ) if(ch1[i]!='0') break;  if( i!=0 ){
                    ch1[0] = ch1[i];  ch1[i] = '0';  }
                yes = Arrays.equals(ch1, str2.toCharArray());  }
        }
        System.out.println(yes ? "YES" : "NO");  in.close();  }
}
发表于 2017-08-08 22:06:14 回复(0)
#include<iostream>
#include<string>
#include <algorithm>
using namespace std;

bool cmp(char a, char b)
{
return a < b;
}
int main()
{
string s , key;
while (cin >> s)
{
cin >> key;
if (s == "0")
{
if (key==s)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
else
{
sort(s.begin(), s.end(),cmp);
if (s[0] != '0')
{
if (key == s)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
else
{
int i;
for (i = 0; i < s.size(); i++)
{
if (s[i] != '0')
{
break;
}
}

s[0] = s[i];
s[i] = '0';
if (key == s)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
}
}
return 0;
}
发表于 2017-08-08 21:02:34 回复(0)
#include <iostream>
#include <stdio.h>
usingnamespacestd;
 
intcur[100] = { 0 };
 
intgetmin(intnum){
    intx, y, min=0;
    inti, j, index, temp;
 
    if(num <= 0)
        returnnum;
    x = 0;
    while(num / 10 > 0){
        cur[x++] = num % 10;
        num = num / 10;
    }
    cur[x] = num;
 
    for(i = 0; i <= x; i++){
        index = i;
        for(j = i; j <= x; j++){
            if(cur[i] > cur[j]){
                index = j;
            }
        }
        if(index != i){
            temp = cur[i];
            cur[i] = cur[index];
            cur[index] = temp;
        }
    }
    i = 0;
    while(cur[i] == 0){ i++; }
    if(i != 0){
        cur[0] = cur[i];
        cur[i] = 0;
    }
     
    for(y = 0; y <= x; y++)
        cout << cur[y];
 
    returnmin;
}
 
intmain(){
    intnum;
 
    cin >> num;
    getmin(num);
 
    return0;
}

发表于 2017-08-08 18:15:48 回复(0)