CSU OJ 1340 A Sample Problem

Description

My girlfriend loves 7 very much, she thinks it is lucky! If an integer contains one or more 7, she will think it is lucky too!

Input

The first line has one integer T (1 <= T <= 100), means there are T test cases.
    For each test case, there is only one line with an integer X (1 <= X <= 109).

Output

For each test case, if X contains one or more 7, output “Lucky” (without quotation marks), otherwise output “Unlucky” (without quotation marks).

Sample Input

4
7
11
568
17171

Sample Output

Lucky
Unlucky
Unlucky
Lucky

HINT

我们主要通过这个题目来感受一下一个完整的ACM竞赛的题目应当是什么样的。

ACM竞赛题目本身的“格式”很明显:

第一部分是对题目的描述,会交待题目的背景,以及你需要编程完成哪些任务等等。

第二部分是对输入的约定,会告诉你题目是否有多组测试数据,每组测试数据的格式,每个参数的类型(整数,浮点数,字符串等)以及取值范围等等。

第三部分是对输出的约定,也就是你的程序应当输出哪些内容以及具体的格式是什么。

第四部分是一些样例,这些例子只是向你展示一部分测试数据以及对应的答案,目的是更好地帮助你理解题意,以及了解对输出格式的要求等。

大家也许会和我当初刚接触ACM时一样心中充满了疑问,在这里我就为大家列举几个常见的问题:

 <1> 如果题目有多组数据,我们是不是也要像样例那样把所有的结果先都计算出来,然后再一起输出?

这个是没必要的,你完全可以每处理完一组数据之后就立刻将这组数据对应的结果输出出来。

但如果你是手动去敲这些样例的话,你会发现在屏幕上输入和输出是混在一起的,并不像样例那样输入和输出是分离的,这样会不会不符合要求呢?那么请看<2>,相信你的疑问就会被解答了。

 <2> OJ (Online Judge)怎么知道我的程序是不是写对了?

OJ并不会去智能化地分析你的代码正确与否,而是用另一种巧妙的思路来判断你的程序是否符合要求:“喂”给你的程序一些输入数据(就像你在键盘上敲一些东西后敲回车一样),之后再将你的程序“产出”的东西(就像你在屏幕上看到的你的程序输出的东西一样)和标准的答案进行对比,如果你的程序得到的答案和标准的答案一模一样,那么就算你通过了这个题目。

因此,即使你手动输入样例时屏幕上的输入和输出是混在一起也没关系,只要你的程序“产出”的东西和标准答案一模一样就可以了。

也正是这种评判机制的关系,你不应当让程序打印一些提示语句,如“Please input two integers”等等,因为凡是你的程序输出的内容都会被拿来和标准答案进行对比,一旦输出了类似这样的题目没有要求输出的语句,就会和标准答案大相径庭了,自然就会认为你的程序是不正确的了。

值得一提的是,尽管这样的评判机制似乎并不能完美地知道你的程序究竟是不是对的(想想看为什么?),不过如果测试数据足够强大的话,“你的程序是对的”的概率就会很高很高了。

<3> 为什么我的程序通过了所有的样例,但是最后还是过不了这个题目?

题目的样例只是一小部分测试数据,目的是为了更好地帮助你理解题意,以及了解对输出格式的要求等,因此通过了样例并不能够代表能通过所有的测试数据。只有通过了所有的测试数据才能得到“Accept”,也就是通过了这个题目。

<4> 每组测试数据的答案输出完之后,是否都要换行?

是的,即使题目里面没有明确说明,我们也应该在每组测试数据的答案输出完之后再输出一个“换行”(也就是“\n”),就像样例示意的那样。

接下来我们谈谈这个题目的思路吧,相信大家应该都想到算法了:只要依次判断读入的整数的每一位是否是7就可以了。

题解

 1 #include <iostream>
 2 #include<cstring>
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 char c[10];
 6 int main(int argc, char** argv) {
 7     ios_base::sync_with_stdio(false);
 8     int t;
 9     cin>>t;
10     while(t--)
11     {
12         cin>>c;
13         int flag=0;
14         for(int i=0;i<strlen(c);i++)
15         {
16             if(c[i]==‘7‘)
17             flag=1;
18         }
19         if(flag)
20         cout<<"Lucky"<<endl;
21         else
22         cout<<"Unlucky"<<endl;
23     }
24
25     return 0;
26 }

我们都知道C++的运行速度不如C的,那么主要的原因是C++的输入输出流兼容了C的输入输出,因此,C++的速度才会变慢,如果我去掉C++的输入输出的兼容性的话,速度就可C的差不多了。上面的红色代码即为去掉兼容性,可提高速度。

原文地址:https://www.cnblogs.com/hcw110/p/9686096.html

时间: 2024-08-04 22:15:12

CSU OJ 1340 A Sample Problem的相关文章

CSU OJ 1112机器人的指令 (湖南省12年省赛题)

 Welcome to CSU Online Judge! 1112: 机器人的指令 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 274  Solved: 97 [Submit][Status][Web Board] Description 数轴原点有一个机器人.该机器人将执行一系列指令,你的任务是预测所有指令执行完毕之后它的位置. ·LEFT:往左移动一个单位 ·RIGHT: 往右移动一个单位 ·SAME AS i: 和第i 条执行相同的

CSU OJ 1120 病毒(湖南省第八届大学生计算机程序设计竞赛)

 1120: 病毒 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 146  Solved: 53 [Submit][Status][Web Board] Description 你有一个日志文件,里面记录着各种系统事件的详细信息.自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生). 遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变).备份的日志文件也被感染了,但由于

CSU OJ 1111 三家人 (湖南省第八届大学生计算机程序设计竞赛)

 1111: 三家人 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 356  Solved: 142 [Submit][Status][Web Board] Description 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列,便出了90元.请问这笔钱如何分给A.B 二位太太较为恰当?A 应得多少元?90/(5+4)*5=$5

CSU OJ 1115 最短的名字(字典树——湖南省第八届大学生计算机程序设计竞赛)

 1115: 最短的名字 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 141  Solved: 56 [Submit][Status][Web Board] Description 在一个奇怪的村子中,很多人的名字都很长,比如aaaaa, bbb and abababab. 名字这么长,叫全名显然起来很不方便.所以村民之间一般只叫名字的前缀.比如叫'aaaaa'的时候可以只叫'aaa',因为没有第二个人名字的前三个字母是'aaa'.不过你不能

CSU 1325: A very hard problem

1325: A very hard problem Time Limit: 3 Sec  Memory Limit: 160 MBSubmit: 203  Solved: 53[Submit][Status][Web Board] Description CX老湿经常被人黑,被黑得多了,自己也就麻木了.于是经常听到有人黑他,他都会深情地说一句:禽兽啊! 一天CX老湿突发奇想,给大家出了一个难题,并且声称谁能够准确地回答出问题才能继续黑他,否则他就要反击了. 这个难题就是: 给出两个数p和q,接下

Light OJ 1004 - Monkey Banana Problem dp题解

1004 - Monkey Banana Problem PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You are in the world of mathematics to solve the great "Monkey Banana Problem". It states that, a monkey enters into a diamond shaped two dim

CSU OJ 三家人(湖南省第八届大学生计算机程序设计竞赛)

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1111 这是道简单的数学题. <span style="font-size:18px;">#include<stdio.h> int main() { int t,z,d;; float x,y,k,s; scanf("%d",&t); int i; while (t--) { scanf("%f%f%d"

csu oj 1804: 有向无环图 (dfs回溯)

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1804 中文题意就不说了. dfs从底到根回溯即可,看代码应该能清楚. 1 //#pragma comment(linker, "/STACK:102400000, 102400000") 2 #include <algorithm> 3 #include <iostream> 4 #include <cstdlib> 5 #include

csu oj 1811: Tree Intersection (启发式合并)

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1811 给你一棵树,每个节点有一个颜色.问删除一条边形成两棵子树,两棵子树有多少种颜色是有相同的. 启发式合并,小的合并到大的中.类似的题目有http://codeforces.com/contest/600/problem/E 1 //#pragma comment(linker, "/STACK:102400000, 102400000") 2 #include <a