1 条题解
-
0
C :
#include <stdio.h> #include <string.h> int main(void) { char str[80]; // char ch,ch1; char *p; gets(str); while( (strcmp(str,"!"))!=0) { p = str; while(*p) { if(*p >= 'a' && *p <= 'm') { putchar( *p + 25 - 2*(*p-'a')); } else if(*p >= 'n' && *p <= 'z') { putchar(*p - 25 + 2*('z'- *p)); } else if(*p >= 'A' && *p <= 'M') { // ch1 = 25 - (*p-'A'); // ch = *p + ch1 - (*p - 'A'); putchar(*p + 25 - 2*(*p-'A')); } else if(*p >= 'N' && *p <= 'Z') { putchar(*p - 25 + 2*('Z'- *p)); } else { putchar(*p); } p++; } putchar('\n'); gets(str); } return 0; }
C++ :
#include <stdio.h> #include <string.h> char * StringInverted(char *str){ int i=0; while(str[i]){ if('a'<=str[i] && str[i]<='z'){ str[i] = 'z'-str[i]+'a'; }else if('A'<=str[i] && str[i]<='Z'){ str[i] = 'Z'-str[i]+'A'; } i++; } return str; } int main(){ char str[100]; while(gets(str), strcmp(str, "!")){ puts(StringInverted(str)); } return 0; }
Pascal :
var st,sta:string; n,i:longint; begin readln(st); while st<>'!' do begin n:=length(st);sta:=''; for i:=1 to n do begin if st[i] in ['a'..'z'] then sta:=sta+chr(219-ord(st[i])) else if st[i] in ['A'..'Z'] then sta:=sta+chr(155-ord(st[i])) else sta:=sta+st[i]; end; writeln(sta); readln(st); end; end.
Java :
import java.math.BigDecimal; import java.util.*; public class Main{ public static void main(String[] args)throws Exception { Scanner in = new Scanner(System.in); char a = 'a'; char z = 'z'; char A = 'A'; char Z = 'Z'; while (true) { String s = in.nextLine(); if("!".equals(s)){ return; } StringBuilder b = new StringBuilder(); for (int i = 0; i < s.length(); i++) { String zm = s.charAt(i) + ""; int t = (int) s.charAt(i); if (zm.matches("[a-z]")) { b.append((char) ((int) z - ((int) t - (int) a))); } else if (zm.matches("[A-Z]")) { b.append((char) ((int) Z - ((int) t - (int) A))); } else { b.append(s.charAt(i)); } } System.out.println(b.toString()); } } }
- 1
信息
- ID
- 1731
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者