第一题:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e4+9;
long long sum[maxn];
int main() {
int x, n;
long long fenmu = 1;
long long fenzi = 1;//初始化分子分母
scanf("%d%d", &x, &n);
for(int i = 1;i <= n;++i) {
fenmu = fenmu * i;//求出n的阶乘
sum[i] = fenmu;//前N项积
}
long long sumall = fenmu;
long long ans = 0;
//n的阶乘为所有项的分母因为所有项的最小共倍数为第n项
for(int i = 1;i <= n;++i) {
fenzi = sumall / sum[i];
ans += (long long)pow(x, i) * fenzi;//求出每项通分之后的分子加起来
}
long double ansall = (long double)ans / (long double)fenmu;//分子除分母
printf("%.9Lf\n", ansall);
return 0;
}
第二题:
#include<bits/stdc++.h>
using namespace std;
int main() {
string s, t = "";
cin >> s;
t = t + s;
reverse(t.begin(), t.end());
t = s + t;
cout << t << "\n";
return 0;
}
第三题:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
while(~scanf("%d", &n)) {
if(n == 0) {
putchar('\n');
return 0;
}
int dig_ge = n % 10;
int dig_shi = n / 10 % 10;
if(dig_ge + dig_shi > 5) {
printf("%d ", n);
}
}
return 0;
}
第四题:
#include<iostream>
using namespace std;
int main() {
int a, b;
scanf("%d%d", &a, &b);
int dig_ans_ge = b % 10;
int dig_ans_shi = a / 10 % 10;
int dig_ans_bai = b / 10 % 10;
int dig_ans_qian = a % 10;
int c = dig_ans_ge + dig_ans_shi * 10 + dig_ans_bai * 100 + dig_ans_qian * 1000;
printf("%d\n", c);
return 0;
}
第五题:没看懂为啥4是哪出来的,瞎写了在数组前面加一个最小的数就是找到最小的那个数的位置然后在最前面添加即可。
#include<iostream>
using namespace std;
#define inf 0x3f3f3f3f
int a[20]={2,3,4,5,1,6,7,8,1};
int main() {
int min1 = inf;
for(int i = 0;i < 9;++i) {
min1 = min(a[i], min1);
}
for(int i = 10;i > 0;--i) {
a[i] = a[i-1];
}
a[0] = min1;
for(int i = 0;i < 10;++i) {
printf("%d ", a[i]);
}
putchar('\n');
return 0;
}
第六题:
#include<iostream>
using namespace std;
const int maxn = 1e7+9;
int f[maxn];
void prime(int n) {
for(int i = 2;i <= n;++i) {
if(f[i]) continue;
for(int j = 2;j*i <= n;++j) {
f[i*j] = 1;
}
}
}
int main() {
prime(1000000);//埃试筛法
int sum = 0;
for(int i = 1;;++i) {
if((!f[i]) && (!f[i+2])) {
sum++;
printf("%d %d\n", i, i+2);
}
if(sum >= 20) {
return 0;
}
}
printf("%d\n", sum);
return 0;
}
第七题:
#include<iostream>
using namespace std;
const int maxn = 1e2+9;//定义最大长度
int a[maxn][maxn];//a矩阵
int b[maxn][maxn];//b矩阵
int ans1[maxn][maxn];//答案乘矩阵
int ans2[maxn][maxn];//答案加矩阵
int main() {
int a_hang, a_lei;
scanf("%d%d", &a_hang, &a_lei);//输入a矩阵的行长和列长
int b_hang, b_lei;
scanf("%d%d", &b_hang, &b_lei);
for(int i = 1;i <= a_hang;++i) {
for(int j = 1;j <= b_lei;++j) {
for(int z = 1; z <= a_lei;++z) {
ans1[i][j] += a[i][z] * b[z][j];
}
printf("%d ", ans1[i][j]);
}
putchar('\n');
}
for(int i = 1;i <= a_hang;++i) {
for(int j = 1;j <= b_lei;++j) {
ans2[i][j] = a[i][j] + b[i][j];
printf("%d ", ans2[i][j]);
}
putchar('\n');
}
return 0;
}
第八题:
#include<bits/stdc++.h>
using namespace std;
struct node{
int sum, cnt;
}book[109];
bool cmp(node a, node b) {
return a.cnt < b.cnt;
}
int main() {
freopen("in.dat", "r", stdin);
int n;
memset(book, 0, sizeof(book));
while(~scanf("%d", &n)) {
book[n].cnt++;
book[n].sum = n;
}
sort(book+40, book+60, cmp);
for(int i = 40;i <= 60;++i) {
if(book[i].cnt != 0) {
printf("%d %d\n", book[i].sum, book[i].cnt);//输出出现最多的数和次数
}
}
return 0;
}
第九题:
#include<iostream>
using namespace std;
const int maxn = 1e5+9;
int a[maxn];//假设要想排序的树组
int main() {
int n;
scanf("%d", &n);//数组的长度
for(int i = 0;i < n;++i) {
scanf("%d", &a[i]);//获取 数组
}
for(int i = 0;i < n-1;++i) {
for(int j = 0;j < n-i-1;++j) {
if(a[j] > a[j+1]) {
swap(a[j], a[j+1]);
}
}
}//从小到大排序 冒泡
for(int i = 0;i < n;++i) {
printf("%d ", a[i]);//输出 数组
}
printf("\n");
return 0;
}