1 条题解
-
0
C :
#include<stdio.h> main(){ int a,b,m; char c,d; scanf("%d%c%d%c",&a,&c,&b,&d); if(c=='+'&&d=='='){ m=a+b; printf("%d\n",m); } }C++ :
#include <iostream> #include <cstring> using namespace std; //求加号的位置 int pos(char s[]){ int k,i; for (i = 0;i < strlen(s);i++){ if (s[i] == '+'){ k = i; break; } } return k; } //把s的从下标r到下标k的一段拷贝到w中 void scopy(char s[],char w[],int r,int k){ int i,j = 0; for (i = r;i <= k;i++){ w[j] = s[i]; j++; } w[j] = '\0'; } //求两个加数 int num(char s[]){ int i,t = 1,n = 0; for (i = strlen(s) - 1;i >= 0;i--){ n = n + (s[i] - 48) * t; t = t * 10; } return n; } int main(){ char s[2000]; char w[2000]; char f[2000]; gets(s); int i; scopy(s,w,0,pos(s) - 1); scopy(s,f,pos(s) + 1,strlen(s) - 2); cout<<num(w) + num(f); }Pascal :
var a:string; t,i,s1,s2,p,d,j:longint; code:integer; k:boolean; begin readln(a);k:=true; t:=length(a);s1:=0;s2:=0;if a[1]='-' then begin d:=2;k:=false;end else d:=1; for i:=d to t do if a[i]='+' then break else begin p:=s1*10;val(a[i],s1,code);s1:=s1+p;end; for j:=i+1 to t-1 do begin p:=s2*10;val(a[j],s2,code);s2:=s2+p;end; if k=true then writeln(s1+s2) else writeln(s2-s1); end.Java :
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String str=scanner.nextLine(); String[] numbers=str.split("="); String ab=numbers[0]; String[] str1=ab.split("\\+"); String a=str1[0]; String b=str1[1]; int a_int=Integer.valueOf(a); int b_int=Integer.valueOf(b); System.out.println(a_int+b_int); } }Python :
str1=input() a=int(str1[:str1.find("+")]) b=int(str1[str1.find("+")+1:-1]) print(a+b)
- 1
信息
- ID
- 125
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者