1 条题解
-
0
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
- 上传者