HDOJ1287_破译密码
一道正常简单题
曲折解题
做这题的时候看了很久没有看懂是什么意思,最后以为是一道单独的数学题把B这个大写字母猜出来进行异或运算,还不知道C里面异或运算可以直接有符号的:),导致又去学习了一下十进制转换成二进制(是的,这个都忘记了)。最后还是没有解出来,看题解之后自己打了一遍。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
int main()
{
	int num[10000],i,j,n,x;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=1;i<=n;i++)
		{
			scanf("%d",&num[i]);
		}
		//对A~Z里的所有的数字进行试探,判断是否为加密的那个大写字母。
		for(i=0;i<26;i++)
		{
			for(j=1;j<=n;j++)
			{
				if(!isupper(('A'+i)^num[j]))
				{
					break;
				}
			}
			if(j==n+1)
			{
				x='A'+i;
				break;
			}
		}
		for(i=1;i<=n;i++)
		{
			printf("%c",x^num[i]);
		}
		printf("\n");
	}
	return 0;
}
思路
使用试探法,对每一组输入的数据进行试探,找出其用来的异或运算的大写字母,然后与输入密文进行异或进行输出。
收获
- ctype头文件中有isupper判断是否是大写字母的函数可以直接调用。
 - C语言中进行异或运算可以直接使用符号“^”。
 - for循环中可以直接使用for(i='A';i<'Z;i++),这个不经常使用,但是需要记住这样使用是没有问题的。
 - 复习十进制转换成二进制使用迭代除2的方法。
 
HDOJ1287_破译密码的更多相关文章
- Linux发行版Debian操作系统破译密码
		
Linux发行版Debian操作系统破译密码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实玩过Linux的小伙伴,对破解服务器密码都应该有所了解,典型的两个代表,我觉得一个是 ...
 - 思维体操:  HDU1287破译密码
		
破译密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
 - hdu1287 破译密码
		
题意: 破译密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
 - POJ3749 破译密码
		
Description 据说最早的密码来自于罗马的凯撒大帝.消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F).而你要获得消息 ...
 - HDOJ 1287 破译密码(异或运算)
		
Problem Description 有个叫"猪头帮"的国家,采用一种简单的文法加密,他们所用的语言里面只有大写字母,没有其他任何字符:现在还知道他们加密的方法是:只用一个大写字 ...
 - MCMC 破译密码    http://mlwhiz.com/blog/2015/08/21/MCMC_Algorithms_Cryptography/
		
# AIM: To Decrypt a text using MCMC approach. i.e. find decryption key which we will call cipher fro ...
 - HDU 1287 破译密码 异或运算
		
http://acm.hdu.edu.cn/showproblem.php?pid=1287 题目: 有个叫"猪头帮"的国家,采用一种简单的文法加密,他们所用的语言里面只有大写字母 ...
 - TweenMax—ScrambleText插件 实现类似电脑破译密码的特效
		
首先贴一下TweenMax的中文网:https://www.tweenmax.com.cn/ 首先先展示一下最后的效果,需要的就继续看下去: 那团乱码是会一直变的 那么如何实现上图的效果呢??? 其实 ...
 - AcWing   215. 破译密码     (莫比乌斯反演)打卡
		
达达正在破解一段密码,他需要回答很多类似的问题: 对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d. 作为达达的同学,达达希望得到你的帮助. ...
 
随机推荐
- DevExpress gridcontrol gridView主从表折叠/展开显示
			
在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...
 - python第四十九课——对象序列化与反序列化
			
person.py class Person: def __init__(self,*args,**kwargs): print('我是Person类的构造...') # self.name=name ...
 - SharePoint在管理中心创建Secure Store
			
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/35780063 SharePoint在管理中心 ...
 - 1.9 Android程序签名打包
			
本节引言: 本节给大家介绍的是如何将我们的程序打包成Apk文件,并且为我们的Apk签名! 1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到 ...
 - http://blog.csdn.net/pipisorry/article/details/51471222
			
这个博主很有意思 机器学习之用Python从零实现贝叶斯分类器 参数估计:贝叶斯思想和贝叶斯参数估计
 - leetcode 235. Lowest Common Ancestor of a Binary Search Tree  236. Lowest Common Ancestor of a Binary Tree
			
https://www.cnblogs.com/grandyang/p/4641968.html http://www.cnblogs.com/grandyang/p/4640572.html 利用二 ...
 - 【Codeforces 1110E】Magic Stones
			
Codeforces 1110 E 题意:给定两个数组,从第一个数组开始,每次可以挑选一个数,把它变化成左右两数之和减去原来的数,问是否可以将第一个数组转化成第二个. 思路: 结论:两个数组可以互相转 ...
 - spring 和spring cloud 组成
			
spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你使用maven dependency引入spring jar包时它就在工作 ...
 - JS-隐士类型转换‘1’+1、‘1’-1、++‘1’为什么不一样?
			
当 x=’1’时,x+1x-1+x-x++xtypeof(x+1)typeof(x-1)typeof(+x)typeof(-x)typeof(++x) 的结果分别是多少? 答案: x+1 //’11’ ...
 - Ubuntu 安装google chrome
			
sudo apt-get install google-chrome-stable /usr/bin/google-chrome-stable