算法提高 9-1九宫格
时间限制:1.0s 内存限制:256.0MB
问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。
样例输出
与上面的样例输入对应的输出。
例:
例:
数据规模和约定
输入1-9这9个数字的一种任意排序。
分析:输入数据到二维数组以后求和比较即可。和可用数组存,方便初始化。
代码:
#include<stdio.h>
#include<iostream>
using namespace std;
int array[3][3];
void check()
{
int sum[8] = {0};
for(int i = 0; i < 3; i++)
{
sum[0] += array[i][0];
sum[1] += array[i][1];
sum[2] += array[i][2];
sum[3] += array[0][i];
sum[4] += array[1][i];
sum[5] += array[2][i];
}
sum[6] = array[0][0] + array[1][1] + array[2][2];
sum[7] = array[0][2] + array[1][1] + array[2][0];
if(sum[1] != sum[0] || sum[2] != sum[0] || sum[3] != sum[0] || sum[4] != sum[0]
|| sum[5] != sum[0] || sum[6] != sum[0] || sum[7] != sum[0])
cout << "0";
else
cout << "1";
}
int main()
{
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
cin >> array[i][j];
check();
cout << "\n";
return 0;
}
算法提高 9-2 文本加密
时间限制:1.0s 内存限制:256.0MB
问题描述
先编写函数EncryptChar,按照下述规则将给定的字符c转化(加密)为新的字符:"A"转化"B","B"转化为"C",... ..."Z"转化为"a","a"转化为"b",... ..., "z"转化为"A",其它字符不加密。编写程序,加密给定字符串。
样例输出
与上面的样例输入对应的输出。
例:
例:
数据规模和约定
输入数据中每一个数的范围。
例:50个字符以内无空格字符串。
例:50个字符以内无空格字符串。
分析:输入字符串后将字符挨个取出判断输出即可。
代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
#define MAXLEN 1000
using namespace std;
void EncryptChar(char c)
{
if(c >= 'A' && c <= 'Y')
c = c + 1;
else if(c == 'Z')
c = 'a';
else if(c >= 'a' && c <= 'y')
c = c + 1;
else if(c == 'z')
c = 'A';
cout << c;
}
int main()
{
char str[MAXLEN];
while(cin >> str)
{
for(int i = 0; str[i]; i++)
EncryptChar(str[i]);
cout << endl;
}
return 0;
}