1 条题解
-
0
C :
#include<stdio.h> #include<string.h> int e[]={1,12,14,16,19,31,32,39}; char s[]="HCNOFPSK"; int main() { int n,i,j,sum,c,k,t; char a[100]; scanf("%d%*c",&n); while(n--) { gets(a); sum=0; for(i=0;i<strlen(a);i++) { k=0; t=i; for(j=0;j<8;j++) { if(a[i]==s[j]) c=e[j]; } while(a[i]>='0'&&a[i]<='9') { k=k*10+a[i]-'0'; i++; } i=t; if(!k) sum+=c; else sum+=c*(k-1); } printf("%d\n",sum); } return 0; }
C++ :
#include<stdio.h> #include<string.h> int e[]={1,12,14,16,19,31,32,39}; char s[]="HCNOFPSK"; int main() { int n,i,j,sum,c,k,t; char a[100]; scanf("%d%*c",&n); while(n--) { gets(a); sum=0; for(i=0;i<strlen(a);i++) { k=0; t=i; for(j=0;j<8;j++) { if(a[i]==s[j]) c=e[j]; } while(a[i]>='0'&&a[i]<='9') { k=k*10+a[i]-'0'; i++; } i=t; if(!k) sum+=c; else sum+=c*(k-1); } printf("%d\n",sum); } return 0; }
Pascal :
program p1052; var a:array['A'..'Z'] of longint; st:string; c:char; i,j,k,n,s,d:integer; begin a['H']:=1; a['C']:=12; a['N']:=14; a['O']:=16; a['F']:=19; a['P']:=31;a['S']:=32; a['K']:=39; readln(n); for i:=1 to n do begin s:=0; readln(st); for j:=1 to length(st) do if (st[j]>='A') and (st[j]<='Z') then begin k:=j+1; d:=0; while (k<=length(st)) and (st[k]>'0') and (st[k]<='9') do begin d:=d*10+ord(st[k])-ord('0'); K:=K+1; end; if d>0 then s:=s+a[st[j]]*d else s:=s+a[st[j]]; end; writeln(s); end; end.
Java :
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = Integer.parseInt(in.nextLine()); Map<Character, Integer> num = new HashMap<Character, Integer>(); num.put('H', 1); num.put('C', 12); num.put('N', 14); num.put('O', 16); num.put('F', 19); num.put('P', 31); num.put('S', 32); num.put('K', 39); while(n-->0){ String str = in.nextLine(); char tem = 0; int out = 0; for(int i=0;i<str.length();i++){ char c = str.charAt(i); if(c>'0' && c<='9'){ if(tem != 0)out += num.get(tem)*(c-'1'); } else{ if(tem != 0)out += num.get(tem); tem = c; } } if(tem != 0)out += num.get(tem); System.out.println(out); } } }
Python :
# coding=utf-8 def zl(x): if x=="H": return 1 elif x=="C": return 12 elif x=="N": return 14 elif x=="O": return 16 elif x=="F": return 19 elif x=="P": return 31 elif x=="S": return 32 elif x=="K": return 39 a=int(input()) for i in range(a): b=input() j=0 n=0 y=0 while j!=len(b): if j==len(b)-1: if b[j]<"1" or b[j]>"9": n=n+zl(b[j]) elif b[j]>="A" and b[j]<="Z" and (b[j+1]<"1" or b[j+1]>"9"): n=n+zl(b[j]) elif b[j]>="A" and b[j]<="Z" and b[j+1]>="1" and b[j+1]<="9": y=int(b[j+1])#此处变量y不能省略,int(j+1)不能直接带入下一行计算公式 n=n+zl(b[j])*y j+=1 print(n)
- 1
信息
- ID
- 6240
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者