PAT Basic Level 1076.Wifi密码 (15)

问题描述:

1076 Wifi密码 (15)(15 分)

下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用wifi,又怕耽误亲们的学习,现将wifi密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成wifi的密码。这里简单假设每道选择题都有4个选项,有且只有1个正确答案。

输入格式:

输入第一行给出一个正整数N(<= 100),随后N行,每行按照“编号-答案”的格式给出一道题的4个选项,“T”表示正确选项,“F”表示错误选项。选项间用空格分隔。

输出格式:

在一行中输出wifi密码。

输入样例:

8
A-T B-F C-F D-F
C-T B-F A-F D-F
A-F D-F C-F B-T
B-T A-F C-F D-F
B-F D-T A-F C-F
A-T C-F B-F D-F
D-T B-F C-F A-F
C-T A-F B-F D-F

输出样例:

13224143

不知道为什么,博主的语言又变成java的了。。。(ps.java的Scanner真是卡。。。)

AC代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
public class Main
{
    public static void main(String []args)
	{
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		in.nextLine();
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<4;j++)
			{
				String s=in.next();
				if(s.charAt(2)=='T')
					System.out.print(s.charAt(0)-'A'+1);
			}
			in.nextLine();
		}
		in.close();
    }
}

PAT (Basic Level) 1012

08-23

题目如下:rn给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:rnrnA1 = 能被5整除的数字中所有偶数的和;rnA2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;rnA3 = 被5除后余2的数字的个数;rnA4 = 被5除后余3的数字的平均数,精确到小数点后1位;rnA5 = 被5除后余4的数字中最大数字。rn输入格式:rnrn每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。rnrn输出格式:rnrn对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。rnrn若其中某一类数字不存在,则在相应位置输出“N”。rnrn输入样例1:rn13 1 2 3 4 5 6 7 8 9 10 20 16 18rn输出样例1:rn30 11 2 9.7 9rn输入样例2:rn8 1 2 4 5 6 7 9 16rn输出样例2:rnN 11 2 N 9rnrnrnrn[code=c]rn#includernusing namespace std;rnrnrnint main()rnarn int n;rn cin >> n;rn int *arr = new int[10];rn int *A = new int[5];rn int *countfora = new int[5];rn for (int i = 0; i < 5; i++)rn A[i] = 0;rn countfora[i] = 0;rn rn for (int i = 0; i < n; i++)rn cin >> arr[i];rn if (arr[i] % 5 == 0 && arr[i] % 2 == 0)rn A[0] += arr[i];rn countfora[0]++;rn rn if (arr[i] % 5 == 1)rn if (countfora[1] % 2 == 0)rn A[1] += arr[i];rn rn elsern A[1] -= arr[i];rn rn countfora[1]++;rn rn if (arr[i] % 5 == 2)rn A[2]++;rn countfora[2]++;rn rn if (arr[i] % 5 == 3)rn A[3] += arr[i];rn countfora[3]++;rn rn if (arr[i] % 5 == 4)rn if (arr[i] > A[4])rn A[4] = arr[i];rn countfora[4]++;rn rn rn rn double a3 = A[3];rn for (int i = 0; i <5; i++)rn if (countfora[i] != 0)rn if (i == 3)rn printf("%.1f",a3/countfora[3]);rn rn elsern cout<

PATbasic level)1028题人口普查

11-17

题目如下:rn某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。rnrn这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。rnrn输入格式:rnrn输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。rnrn输出格式:rnrn在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。rnrn输入样例:rn5rnJohn 2001/05/12rnTom 1814/09/06rnAnn 2121/01/30rnJames 1814/09/05rnSteve 1967/11/20rn输出样例:rn3 Tom Johnrnrn我的代码如下:rn#includern#includern#includern#includern#includernrnusing namespace std;rnrnclass personrnpublic:rn string name;rn int yy,mm,dd;rn friend bool operator<(const person&ls,const person&rs);rn;rnrnbool operator<(const person&ls,const person&rs)rn if(ls.yy2014||(p.yy == 12014&&p.mm >9)||(p.yy == 2014&&p.mm==9&&p.dd>6))rn return false;rn return true;rnrnrnint main(void)rn //ifstream cin("in.txt");rn int num;rn cin>>num;rn vector v;rn person temp;rn char ch;rn for(int i = 0;i!=num;++i)rn cin>>temp.name>>temp.yy>>ch>>temp.mm>>ch>>temp.dd;rn if(is(temp))rn v.push_back(temp);rn rn sort(v.begin(),v.end());rn if(!v.empty())rn cout<

PATbasic level)数字黑洞问题运行超时

11-16

http://pat.zju.edu.cn/contests/pat-b-practise/1019rn题目如下:rn给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。rnrn例如,我们从6767开始,将得到rnrn7766 - 6677 = 1089rn9810 - 0189 = 9621rn9621 - 1269 = 8352rn8532 - 2358 = 6174rn7641 - 1467 = 6174rn... ...rnrn现给定任意4位正整数,请编写程序演示到达黑洞的过程。rnrn输入格式:rnrn输入给出一个(0, 10000)区间内的正整数N。rnrn输出格式:rnrn如果N的4位数字全相等,则在一行内输出“N - N = 0000”;否则将计算的每一步在一行内输出,直到6174作为差出现,输出格式见样例。注意每个数字按4位数格式输出。rnrn输入样例1:rn6767rn输出样例1:rn7766 - 6677 = 1089rn9810 - 0189 = 9621rn9621 - 1269 = 8352rn8532 - 2358 = 6174rn输入样例2:rn2222rn输出样例2:rn2222 - 2222 = 0000rn我的代码如下:rn#includern#includern#includern#includernusing namespace std;rnrnvoid pv(vector v)rn for(int t = 0;t!=v.size();++t)rn cout< v)rn for(int t = v.size()-1;t>=0;--t)rn cout< v)rn int x = 0;rn for(int t = 0;t!=v.size();++t)rn x =10*x+v[t];rn return x;rnrnrnint rv2i(vector v)rn int x = 0;rn for(int t = v.size()-1;t>=0;--t)rn x =10*x+v[t];rn return x;rnrnrnvector i2v(int i)rn vector v;rn v.push_back(i/1000);rn i %= 1000;rn v.push_back(i/100);rn i %=100;rn v.push_back(i/10);rn v.push_back(i%10);rn return v;rnrnrnint main(void)rn string s;rn cin>>s;rn vector v(4);rn for(int t = 0;t!=4;++t)rn v[t] = s[t]-'0';rn if(v[0] ==v[1]&&v[1]==v[2]&&v[2]==v[3])rn pv(v);rn cout<<" - ";rn pv(v);rn cout<<" = 0000"<

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试