1.编程实现:特殊运算符
时间限制:1000MS
内存限制:65536KB
题目描述:
假定有一个运算符“>>>”,它的功能如下所示:
>>>257 = 25
>>>182 = 18
>>>933 = 93
给定一个正整数N(100<N<<1000),请计算N-(>>>N)的结果
例如:N=257时,
257-(>>>257)
=257-25
=232
输入描述:输入一个正整数N(100<N<1000)
输出描述:输入一个整数,表示N-(>>>N)的结果
样例输入:257
样例输出:232
解析:
#include <bits/stdc++.h>
using namespace std;int main() {
int n;
cin>>n;
int k=n/10;//“>>>”的意义指取一个三位数的前两位
cout<<n-k;return 0;
}
2.编程实现:四叶玫瑰数
四叶玫瑰数指一个四位数,其各位上的数字的四次方之和等于本身。
给定两个正整数N和M,请将N~M(1<=N<=M<=1000000)之间(含N和M)的四叶玫瑰数按从小到大的顺序输出。
例如:N=1234,M=2345时,有一个四叶玫瑰数1634,因为1^4+6^4+3^4+4^4=1634,故输出1634.
输入描述:第一行输入两个正整数N、M(1<=N<=M<=1000000)
输出描述:输出一行,包含若干个用一个空格隔开的正整数,表示N~M之间的四叶玫瑰数。
注意:题目数据保证给定的N~M范围内至少有一个四叶玫瑰数
样例输入:1234 2345
样例输出:1634
解析:
#include <bits/stdc++.h>
using namespace std;//函数定义,指算四位数个个数位的四次方之和
int f (int o) {
int q = o / 1000, b = o % 1000 / 100, s = o % 100 / 10, g = o % 10;//分解个个位
return pow(q, 4) + pow(b, 4) + pow(s, 4) + pow(g, 4);
}int main() {
int n, m;
cin >> n >> m;
if (n < 1000 && m <= 9999) {
for (int i = 1000; i <= m; i++) {
if (f(i) == i)
cout << i << " ";
}
} else if (m <= 9999) {
for (int i = n; i <= m; i++) {
if (f(i) == i)
cout << i << " ";
}
} else {
for (int i = n; i <= 9999; i++) {
if (f(i) == i)
cout << i << " ";
}
}return 0;
}