A Creating Words
思路:拿一個容器交換兩數值即可
#include<bits/stdc++.h>
using namespace std;
const int N = 100001;
char a[N],b[N];
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%s %s",a,b);
char jiaohuan = a[0];
a[0] = b[0];
b[0] = jiaohuan;
printf("%s %s\n",a,b);
}
return 0;
}
B. Maximum Multiple Sum
思路點撥:目的是找出一個整數 a,使得 a 到 n 之間所有 a 的倍數的和最大
對於任何小於等於 n 的整數 a,其倍數的和可以透過求和公式計算:
#include <iostream>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while (t--) {
int n;
scanf("%d",&n);
int op = 0;
int max_sum = 0;
// 遍歷所有可能的a值,計算最大和
for (int a = 2; a <= n; a++)
{
int sum = 0;
int k = n / a; // 計算小於等於n的a的倍數的數量
for (int i = 1; i <= k; i++)
{
sum += i * a;
}
if (sum > max_sum)
{
max_sum = sum;
op = a;
}
}
printf("%d\n",op);
}
return 0;
}
C. Good Prefixes
大意:計算陣列中“好”的非空字首的數量。一個字首是“好”的,如果它包含了一個元素,這個元素等於其他所有元素的和。
思路:字首和