1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int jiahao(char s[]){ int x,i; for (i = 0;i < strlen(s);i++){ if (s[i] == '+'){ x = i; } } return x; } int num(char s[]){ int i,n = 0,t = 1; for (i = strlen(s) - 1;i >= 0;i--){ n = n + (s[i] - 48) * t; t = t * 10; } return n; } int main(){ char s[1000]; char w[1000]; int n = 0,i,j,k = 0; gets(s); for (i = 0;i < strlen(s);i++){ if (s[i] >= '0' && s[i] <= '9'){ w[k] = s[i]; k++; if (i == strlen(s) - 1 || s[i + 1] < '0' || s[i + 1] > '9'){ w[k] = '\0'; //cout<<w<<" "<<num(w)<<endl; n = n + num(w); k = 0; } } } cout<<n; }Pascal :
var a,s:ansistring; i,j,k:integer; v:array[1..2000] of integer; procedure plus(b:ansistring;var a:ansistring); var m,n:array[1..2000] of integer; t:ansistring; la,lb,len:integer; begin la:=length(a); lb:=length(b); fillchar(m,sizeof(m),0); fillchar(n,sizeof(n),0); for i:=1 to la do m[i]:=ord(a[la-i+1])-ord('0'); for i:=1 to lb do n[i]:=ord(b[lb-i+1])-ord('0'); if la>lb then len:=la else len:=lb; for i:=1 to len do m[i]:=m[i]+n[i]; for i:=1 to len do if m[i]>=10 then begin m[i+1]:=m[i+1]+m[i] div 10; m[i]:=m[i] mod 10; end; a:=''; if m[len+1]<>0 then a:=chr(m[len+1]+ord('0')); for i:=len downto 1 do begin t:=chr(m[i]+ord('0')); a:=a+t; end; end; begin readln(s); v[1]:=0; k:=1; for i:=1 to length(s) do if s[i]='+' then begin k:=k+1; v[k]:=i; end; v[k+1]:=length(s)+1; a:='0'; for j:=1 to k do plus(copy(s,v[j]+1,v[j+1]-v[j]-1),a); writeln(a); end. var a,s:ansistring; i,j,k:integer; v,p:array[1..2000] of integer; procedure plus(b:ansistring;var a:ansistring); var m,n:array[1..2000] of integer; t:ansistring; la,lb,len:integer; begin la:=length(a); lb:=length(b); fillchar(m,sizeof(m),0); fillchar(n,sizeof(n),0); for i:=1 to la do m[i]:=ord(a[la-i+1])-ord('0'); for i:=1 to lb do n[i]:=ord(b[lb-i+1])-ord('0'); if la>lb then len:=la else len:=lb; for i:=1 to len do m[i]:=m[i]+n[i]; for i:=1 to len do if m[i]>=10 then begin m[i+1]:=m[i+1]+m[i] div 10; m[i]:=m[i] mod 10; end; a:=''; if m[len+1]<>0 then a:=chr(m[len+1]+ord('0')); for i:=len downto 1 do begin t:=chr(m[i]+ord('0')); a:=a+t; end; end; procedure minus(b:ansistring;var a:ansistring); var m,n:array[1..2000] of integer; t:ansistring; la,lb,len:integer; begin la:=length(a); lb:=length(b); fillchar(m,sizeof(m),0); fillchar(n,sizeof(n),0); for i:=1 to la do m[i]:=ord(a[la-i+1])-ord('0'); for i:=1 to lb do n[i]:=ord(b[lb-i+1])-ord('0'); if la>lb then len:=la else len:=lb; for i:=1 to len do if m[i]>=n[i] then m[i]:=m[i]-n[i] else begin m[i]:=m[i]+10-n[i]; m[i+1]:=m[i+1]-1; end; a:=''; i:=255; while m[i]=0 do i:=i-1; len:=i; for i:=len downto 1 do begin t:=chr(m[i]+ord('0')); a:=a+t; end; end; begin readln(s); v[1]:=0; p[1]:=1; k:=1; for i:=1 to length(s) do if s[i]='+' then begin k:=k+1; v[k]:=i; p[k]:=1; end else if s[i]='-' then begin k:=k+1; v[k]:=i; p[k]:=0; end; v[k+1]:=length(s)+1; a:='0'; for j:=1 to k do if p[j]=1 then plus(copy(s,v[j]+1,v[j+1]-v[j]-1),a) else if p[j]=0 then minus(copy(s,v[j]+1,v[j+1]-v[j]-1),a); writeln(a); end.Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int sum = 0; String[] b = s.split("\\+"); for(int i = 0;i<b.length;i++){ String c = b[i]; int a = Integer.parseInt(c); sum = sum + a; } System.out.println(sum); } }Python :
a=list(map(int,input().split("+"))) n=len(a) s=0 for i in range(n): s=s+a[i] print(s)
- 1
信息
- ID
- 118
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者