1 条题解

  • 0
    @ 2025-10-10 15:45:27

    C :

    #include <stdio.h>
    int main(void)
    {
    long int a,b,c,t=10,i=0;
    scanf("%ld=%ld",&a,&c);
    while (a/t)
    {
    b=a%t;
    if (a/t+b==c) {
    printf("%ld+%ld=%ld\n",a/t,b,c);
    t*=10;i++;
    }
    else t*=10;
    }
    if (i==0) puts("Impossible!");
    return 0;
    }
    

    C++ :

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    //找等号的位置 
    int zhaostr(char s[]){
    	int i,k;
    	for (i = 0;i < strlen(s);i++){
    		if (s[i] == '='){
    			k = i;
    		}
    	}
    	return k;
    }
    
    //分解字符串 
    void fenjie(char s1[],char s2[],int k,int r){
    	int i,j = 0;
    	for (i = k;i <= r;i++){
    		s2[j] = s1[i];
    		j++;
    	}
    	s2[j] = '\0';
    }
    
    //字符串转整数
    int num(char s[]){
    	int i,num = 0,t = 1;
    	for (i = strlen(s) - 1;i >= 0;i--){
    		num = num + (s[i] - 48) * t;
    		t = t * 10;
    	}
    	return num;
    } 
    
    int main(){
    	char s[1000];
    	gets(s);
    	int i,k = zhaostr(s);
    	bool c = false;
    	char s1[1000];
    	fenjie(s,s1,0,k - 1);
    	char s2[1000];
    	fenjie(s,s2,k + 1,strlen(s) - 1);
    	
    	char str1[1000];
    	char str2[1000];
    	for (i = 0;i < strlen(s1) - 1;i++){
    		fenjie(s1,str1,0,i);
    		fenjie(s1,str2,i + 1,strlen(s1) - 1);
    		//cout<<str1<<" "<<str2<<endl;
    		if (num(str1) + num(str2) == num(s2)){
    			cout<<str1<<"+"<<str2<<"="<<s2;
    			c = true;
    		}
    	}
    	if (c == false){
    		cout<<"Impossible!";
    	}
    }
    

    Pascal :

    var s:string;
    
        i,j,k,x,y:longint;
    
    begin
    
     readln(s);
    
     k:=pos('=',s);
    
     val(copy(s,k+1,length(s)-k),j);
    
     delete(s,k,length(s)-k+1);
    
     for i:=1 to length(s)-1 do 
    
      begin
    
       val(copy(s,1,i),x);
    
       val(copy(s,i+1,length(s)-i),y);
    
       if x+y=j then
    
        begin
    
         writeln(x,'+',y,'=',j);
    
         halt;
    
        end;
    
      end;
    
     writeln('Impossible');
    
    end.
    

    Java :

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String s = sc.nextLine();
    		String[] s1 =s.split("=");
    		int t = Integer.parseInt(s1[0]);
    		int z = Integer.parseInt(s1[1]);
    		String a;
    		String b;
    		int c, d, e;
    		int x = 0;
    		for (int i = 0; i < s1[0].length() - 1; i++) {
    			a = s1[0].substring(0, i + 1);
    			b = s1[0].substring(i + 1, s1[0].length());
    			c = Integer.parseInt(a);
    			d = Integer.parseInt(b);
    			e = c + d;
    			if (e == z) {
    				x = 1;
    				System.out.println(c + "+" + d + "=" + z);
    				break;
    			}
    		}
    		if(x == 0)
    			System.out.println("Impossible!");
    	}
    }
    
    

    Python :

    a,b=input().split("=")
    n=len(a)
    for i in range(1,n):
        if int(a[0:i])+int(a[i:n])==int(b):
            print ("%s+%s=%s"%(a[0:i],a[i:n],b))
            break
    else:
        print("Impossible!")
    
    • 1

    信息

    ID
    109
    时间
    1000ms
    内存
    512MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者