【模拟】代码抄袭

描述

考虑题目较难,同时为了鼓励同学们下去自己练习…我们今天把这题放上…

以前写过的,直接放代码就过了。要是做完又回去自己没做的同学,下次记得做不出的题回去尽量琢磨琢磨。

判断2个代码是抄袭是很必要的,但是,除了人来看,似乎没有什么好方法……

一个比较好的方法是比较编译后得二进制文件。

现在就来让你写个程序来比较两个二进制文件得差异度。

输入

第一行包含1个整数T,表示有T组数据。

每组数据包含两行。

第一行包含一个数字N1(<=1000)表示长度,一个空格符,一个长度为N1的由’0’和’1’字符构成得数组,表示第一个文件得信息。

第二行结构和第一行类似,长度为N2(<=1000)。

输出

判断两个1-0串的相似程度,如果长度都不同那么肯定不同,如果长度相同,统计相同位置的字符相同的个数,如果占到了整个长度得70%以上就说明有抄袭嫌疑,即

(相同字符个数)/(字符数组长度)>=0.700(精确到小数点后3位)。

样例输入

3
3 111
3 000
3 011
2 01
5 10010
5 10110

样例输出

No
No
Yes

分析:
热手题。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T–)
{
int N1,N2;
string s1,s2;
cin>>N1>>s1>>N2>>s2;
int l1=s1.length(),l2=s2.length();
if (l1!=l2)
{
cout<<“No”<<endl;
}
else
{
int t=0;
for (int i=0;i<l1;i++)
{
if (s1[i]==s2[i])
{
t++;
}
}
double d=t*1.0/l1;
if (d>0.700)
cout<<“Yes”<<endl;
else
cout<<“No”<<endl;
}
}
return 0;
}

发布了67 篇原创文章 · 获赞 0 · 访问量 1696
展开阅读全文

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

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览