首先声明,我写博客很大程度是为了记录和分享我的编程之路,如果后来人是在百度上面搜到我的文章,动机不是为了知识本身,而是为了应付题目的话,我话摆在这里,借鉴可以,但是一定要转化成自己的知识,不要只抄,然后没弄懂,那还不如直接花钱请人帮你做了,我一直秉持的原则就是,你真不想干某件事,而这件事又在你看来是没有意义的话,倒还不如用钱解决,说白了就是用钱买时间,没有必要在一些对你没有意义的地方花过多时间,倒还不如用这么点时间去做一些更有意义的事情。
4218: 七龙珠II
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 4097 Solved: 1721
Description
小王去找了个算命先生算算这辈子是有钱还是没钱。他在纸上写下“性命”两个字,问哪个字重要。
小王想了想说当然是命比较重要。
他摇摇头:“你,没钱”
“为什么?”
“有钱,任性。没钱,认命。”
小王问大师,我想要很多钱,还望大师指点。
大师:世间有七个珠子,只要集齐就可以实现你的愿望。
小王:哦,大师,这个段子我看的太多了,你一定说不是七龙珠,是双色球。
大师:滚特么犊子!我说的是超级大乐透!
超级大乐透一注7个号码,分为前区5个1到35号的球,后区2个1到12号的球,前区5个球都不相同,后区2个球也不相同,摇号时先摇
出前区5球,再摇后区2球。当然摇号时球不一定是有序的,你买的时候也一样可能无序,不过都是先前区后后区
Input
多组测试数据。先输入1个整数t表示组数,然后是t组,每组输入2行,分别是摇出的号码和你买的号码
Output
对于每组测试数据输出1行,如果全中输出yes,否则输出no
Sample Input
2
1 2 3 4 5 5 6
1 2 3 4 5 5 6
1 2 3 35 5 2 3
1 2 3 5 35 3 2
Sample Output
yes
yes
其实这道题目思路非常简单,但是做这道题目那天脑子抽了一下,因此我就抽了点时间出来重新做了下这道题目,越发觉得自己菜的不行。
这道题目如果用C++来编写是非常简单的,cin一下,sort,比较一下就好了,但是用C语言编写的话相对麻烦一点,但还是一道水题。
基本思路我已经写在这里面了,希望可以给后来者提供一个思路(但切记,不要照本宣科!)
#include<stdio.h>
int main()
{
int t;
while(scanf("%d",&t)!=EOF)
{
while(t!=0)
{
t--;
//首先用四个数组输入
int a[6],b[3],c[6],d[3],i=1,j=1;
//个人习惯数组留出第一位
for(i;i<=5;i++)
{
scanf("%d",&a[i]);
}
for(j;j<=2;j++)
{
scanf("%d",&b[j]);
}
for(i=1;i<=5;i++)
{
scanf("%d",&c[i]);
}
for(j=1;j<=2;j++)
{
scanf("%d",&d[j]);
}
//利用judge1和judge2进行遍历判断
int judge1=0,judge2=0;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
if(a[i]==c[j])
{
c[j]=0; //这里一定要置0,至于为什么,傻子应该都知道了。。
judge1++;
}
}
}
for(i=1;i<=2;i++)
{
for(j=1;j<=2;j++)
{
if(b[i]==d[j])
{
d[j]=0;
judge2++;
}
}
}
if(judge1==5&&judge2==2)
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
}
}