1. 题目描述
给定一个正整数N(N>2),输出所有比N小的素数。
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
for (N; N > 2; N--)
{
int isprime(int);
isprime(N);
}
cout << 2;
return 0;
}
int isprime(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) return 1;
}
cout << n << " " ;
return 1;
}
2. 题目描述
给定一个正整数N(N>6),输出所有比N小的完数。
如果一个数恰好等于它的因子之和,则称该数为 完数(perfect number)。
例如:6就是一个完数,6 = 1 + 2 + 3。
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
for (N; N >= 6; N--) {
int ws(int);
if (ws(N) != 1)
cout << ws(N) << endl;
}
return 0;
}
int ws(int n) {
int i;
int t = 0;
for (i = 1; i < n; i++) {
if (n % i == 0)
t = t + i;
else
t = t + 0;
}
if (n == t)
return t;
else
return 1;
}
3. 题目描述
输入一个正数x,求其三角函数sin、cos和tan的近似值,要求误差小于1e-10。
具体使用麦克劳林公式,通过逐步迭代累加实现。
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double x;
cin >> x;
cout << "sin(" << x << ")" << "=" << sin(x) <<endl;
cout << "cos(" << x << ")" << "=" << cos(x) <<endl;
cout << "tan(" << x << ")" << "=" << tan(x) <<endl;
return 0;
}
4. 题目描述
高祖刘邦问韩信统御士兵多少,韩信答说,每3人一列余1人,5人一列余2人,7人一列余4人,13人一列余6人……刘邦茫然而不知其数。
请求出满足要求的前N个韩信统御的士兵数量。
#include <iostream>
using namespace std;
int main(){
int N;
int n =0;
cin >> N;
while(N>0){
if (n%3==1&&n%5==2&&n%7==4&&n%13==6)
{cout << n << endl;
N--;
}
n++;
}
return 0;
}
5. 题目描述
某人有 N 元钱,打算买 N 只鸡。到市场上一看,公鸡5元一只,母鸡3元一只,小鸡1元三只。
请问公鸡,母鸡,小鸡各多少只才能刚好花 N 元钱买到 N 只鸡?
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int a, b;
for (a = 0; a < (N/5); a++) {
for (b = 0; b < (N/3); b++) {
if (a + b + 3*(N - 5*a - 3*b) == N)
cout << "公鸡=" << a << ",母鸡=" << b << ",小鸡=" << (N-a-b) << endl;
}
}
return 0;
}
6. 题目描述
小明读书,第一天读了全书的一半加2页,第二天读了剩下的一半加2页,以后天天如此…,第N天读完了最后的3页,请问全书有多少页?
#include <iostream>
using namespace std;
int main(){
int N;
int t =3;
cin >> N;
for(N;N>1;N--){
t = (t+2)*2;
}
cout << t << endl;
return 0;
}
7. 题目描述
第一天,小猴子摘了若干个桃子,立即吃了一半,还觉得不过瘾,又多吃了1个。
第二天,接着吃剩下的桃子的一半,还觉得不过瘾,又多吃了1个。
以后小猴子都是吃剩下的桃子的一半多一个。到第N天,小猴子再去吃桃的时候,看到只剩下一个桃子。
问小猴子第一天一共摘了多少个桃子?
#include <iostream>
using namespace std;
int main(){
int N;
int n =1;
cin >> N;
for(N;N>1;N--){
n=(n+1)*2;
}
cout << n;
return 0;
}
8. 题目描述
给定十进制数N,以16进制的形式输出,且16进制的输出字母大写。要求输出宽度占10个字符,不足10个用$填充。
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
int x = N;
cout.width(10);
cout.fill('$');
cout.setf(ios_base::showbase | ios_base::uppercase);
cout.unsetf(ios_base::dec);
cout.setf(ios_base::hex);
cout << x << endl;
return 0;
}
9. 题目描述
输入一个大于2的正整数,将其写成两个素数之和。
#include <iostream>
using namespace std;
int p = 2;
int main() {
int N;
cin >> N;
int isprime(int);
if (isprime(N)!=1)
cout << N << "=" << (p > (N - p) ? (N - p) : p) << "+" << (p > (N - p) ? p : (N - p));
return 0;
}
int isprime(int n) {
while (p < n) {
int m = 2;
if (p == 2) {
if ((n - p) % m == 0);
return 2;
}
else {
for (m; m < p; m++) {
if (p % m == 0)
break;
else if ((n - p) % m == 0)
break;
else
return p;
}
}
p++;
}
return 1;
}
10. 题目描述
已知C++语言的数学函数库提供了log(x)函数,用于计算以e为底的x的对数。
请编写一个函数logf(x,a),用于计算以任意数值a为底的x的对数值。
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x, a;
cin >> x >> a;
cout << log(x)/log(a);
return 0;
}