IT3

发布时间 2023-04-11 08:37:57作者: BKYNEKO

/*
1110: 密电加密
时间限制:1.000s 内存限制:256MB

题目描述
先编写函数 EncryptChar, 按照下述规则将给定的字符 c 转化(加密)为新的字符:"A" 转化 "B","B" 转化为 "C",... ..."Z" 转化为 "a","a" 转化为 "b", ... ..., "z" 转化为 "A",其它字符不加密。编写程序,加密给定字符串。
输入格式
输入为一行,表示转换前的字符串。
输出格式
输出仅一行,表示加密后的字符串。
样例输入
abczABDZ
样例输出
bcdABCEa
提示 / 说明
输入数据中每一个数的范围:
50 个字符以内无空格字符串。


#include<stdio.h>
int main()
{
char s;
while (scanf_s("%c", &s) != EOF)
{
if (s >= 'a'&&s<'z' || s >= 'A'&&s<'Z')
{
s++;
}
if (s == 'z')
{
s = 'A';
}
if (s == 'Z')
{
s = 'a';
}
printf("%c", s);
}
return 0;
}*/

 

 

 

 

/*
1109: 消灭雷同
时间限制:1.000s 内存限制:512MB

题目描述
编写一个程序,先输入一个字符串 str(长度不超过 20),再输入单独的一个字符 ch,然后程序会把字符串 str 当中出现的所有的 ch 字符都删掉,从而得到一个新的字符串 str2,然后把这个字符串打印出来。
输入格式
输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。
输出格式
输出一行,表示经过处理后的字符串。
样例输入
123 - 45 - 678
-
样例输出
12345678


#include<stdio.h>
#include<string.h>
int main()
{
int m, n, a, b=0;
char x[20], c;
gets(x);
a = strlen(x);
scanf("%c", &c);
char y[20];
for (m = 0, n = 0; m < a - b; m++, n++)
{
if (x[n] != c)y[m] = x[n];
else
{
for (; x[n] == c;)
{
n += 1;
b += 1;
}
y[m] = x[n];
}
}
for (b = 0; b < m; b++)printf("%c", y[b]);
return 0;
}
*/

 


/*
1108: 加班加班加班
时间限制:1.000s 内存限制:512MB

题目描述
编写一个程序,计算员工的周薪。薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过 40 个小时,那么他 / 她的总收入等于工作时间乘以每小时的薪水。如果员工工作的时间在 40 到 50 个小时之间,那么对于前 40 个小时,仍按常规方法计算;而对于剩余的超额部分,每小时的薪水按 1.5 倍计算。如果员工工作的时间超过了 50 个小时,那么对于前 40 个小时,仍按常规方法计算;对于 40~50 个小时之间的部分,每小时的薪水按 1.5 倍计算;而对于超出 50 个小时的部分,每小时的薪水按 2 倍计算。请编写一个程序,输入员工的工作时间和每小时的薪水,然后计算并显示他 / 她应该得到的周薪。
输入格式
输入数据有多组,每组数据只有一行,包括一个整数和一个实数,分别表示工作时间和每小时薪水。
输出格式
对于每组数据,输出只有一个实数,表示周薪,保留小数点后 2 位。
样例输入
40 50
样例输出
2000.00


#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int time;
float money;
cin >> time >> money;
if (time >= 0 && time <= 168 && money >= 0)
{
if (time <= 40)money = time*money;
if (time > 40 && time <= 50)money = money * 40 + (time - 40)*money*1.5;
if (time > 50)money = money * 40 + 10 * money*1.5 + (time - 50) * 2 * money;
cout << setiosflags(ios::fixed) << setprecision(2) << money;
}
return 0;
}
*/

 

 


/*
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int hours;
double hourly_rate;
while (cin >> hours >> hourly_rate) {
double salary = 0;
if (hours <= 40) {
salary = hours * hourly_rate;
}
else if (hours <= 50) {
salary = 40 * hourly_rate + (hours - 40) * hourly_rate * 1.5;
}
else {
salary = 40 * hourly_rate + 10 * hourly_rate * 1.5 + (hours - 50) * hourly_rate * 2;
}
cout << fixed << setprecision(2) << salary << endl;
}
return 0;
}
*/

 

 

 

/*
1093: 贝拿勒斯圣庙的宝石针
时间限制:1.000s 内存限制:512MB

题目描述
法国数学家爱德华 · 卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的 n 片金片。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。而我们现在想知道,移动这 n 片金片,需要多少步。

给这三个宝石针分别标号为 A B C, 初始状态下所有的金片都在 A 上,目的是将 A 上的所有金片移动到 C 上。

编程设计算法,输出每一步的搬运过程。

输入格式
包含一个整数,表示金片的个数。
输出格式
输出多行,每行表示搬运一个金片的详细过程。

例如: 1 A C 。 表示将编号为 1 的金片直接从 A 移到 C(编号从1开始)

样例输入
2
样例输出
1 A B
2 A C
1 B C

#include<iostream>
using namespace std;
void HanTowel(int n, char A, char B, char C)
{
if (n == 1)cout <<n << " " << A << " " << C<< endl;
else
{
HanTowel(n - 1, A, C, B);
cout<< n << " " << A << " " << C << endl;
HanTowel(n - 1, B, A, C);

}
}
int main()
{
char ch1 = 'A';
char ch2 = 'B';
char ch3 = 'C';
int n;
cin >> n;
HanTowel(n, 'A', 'B', 'C');
system("pause");
return 0;
}
*/

 

 

 

/*
1107: ZN的随机数
时间限制:1.000s 内存限制:256MB

题目描述
ZN 想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助 ZN 完成 “去重” 与“排序”的工作。
输入格式
输入数据有多组,每组测试数据有 2 行,第 1 行为 1 个正整数,表示所生成的随机数的个数:N

第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。

输出格式
对于每组测试实例,输出 2 行,第 1 行为 1 个正整数 M,表示不相同的随机数的个数。第 2 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
10
20 40 321 67 40 20 89 301 407 15
样例输出
8
15 20 40 67 89 301 321 407


#include<stdio.h>
int main()
{
int a[100], N, i, j, k, t, b;
scanf_s("%d", &N);
if (N <= 100)
{
for (i = 1; i <= N; i++)scanf_s("%d", a + i);
for (i = 1; i < N; i++)
{
if (a[i] > 1 && a[i] < 1000)b = 1;
else b = 0;
}
if (b = 1)
{
for (i = 1; i<N; i++)
{
for (j = 1; j <= N - i; j++)
{
if (a[j]>a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
else if (a[j] == a[j + 1])
{
for (k = j; k < N; k++)a[k] = a[k + 1];
N--;
}
}
}
printf("%d\n", N);
for (i = 1; i <= N; i++)
{
if (i < N)printf("%d ", a[i]);
else printf("%d\n", a[i]);
}
}
}
return 0;
}
*/

 

 


/*
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
bool s[1000];
int main()
{
int a[101], cnt = 0;
int N;
cin >> N;
if(N<=100)
{
for (int i = 0; i<N; i++)
{
cin >> a[i];
if (s[a[i]] == 1)continue;
s[a[i]] = 1;
a[cnt++] = a[i];
}
sort(a, a + cnt);
cout << cnt << endl;
for (int i = 0; i<cnt; i++)
{
cout <<a[i]<< " ";
}
}
return 0;
}*/

 

 

 

/*
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string.h>
#include<math.h>
using namespace std;
typedef long long LL;
const int num = 105;
int a[num], n;

bool cmp(int a, int b)
{
return a < b;
}

int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
sort(a + 1, a + n + 1, cmp);
int cnt = n;
for (int i = 2; i <= cnt; i++)
{
if (a[i] == a[i - 1])
{
for (int j = i + 1; j <= cnt; j++)
{
a[j - 1] = a[j];
}
cnt--;
i = 1;
}
}
cout << cnt << endl;
for (int i = 1; i <= cnt; i++)
cout << a[i] << " ";
return 0;
}*/

 

 


/*
#include <iostream>
#include <set>
using namespace std;
int main() {
int n;
while (cin >> n) {
set<int> s;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
s.insert(x);
}
cout << s.size() << endl;
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
return 0;
}
*/