西风烈,长空雁叫霜晨月。霜晨月,马蹄声碎,喇叭声咽。
代码如下:
#include
using namespace std;
int main()
{
int n, a, minn = 10001;
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> a;
minn = min(minn, a);
}
cout << minn;
}
代码如下:
#include
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
double sum1 = 0, cnt1 = 0, sum2 = 0, cnt2 = 0;//float过不了
for (int i = 1; i <= n; ++i)
{
if (i % k == 0)
{
sum1 += i;
cnt1++;
}
else
{
sum2 += i;
cnt2++;
}
}
printf("%.1f %.1f", sum1 / cnt1, sum2 / cnt2);
}
代码如下:
#include
using namespace std;
int main()
{
int a, cnt = 1;
cin >> a;
while (a > 1)
{
cnt++;
a /= 2;
}
cout << cnt;
}
代码如下:
#include
using namespace std;
int main()
{
int n, cnt = 1;
cin >> n;
for (int i = n; i > 0; --i)
{
for (int j = 0; j < i; ++j)
{
printf("%02d", cnt++);
}
cout << endl;
}
}
-这个题超纲,需要使用高精度乘法和加法
代码如下:
#include
using namespace std;
string big_add(string a1, string a2)
{
const int l = 5005;
int l1 = a1.size(), l2 = a2.size(), num1[l] = {0}, num2[l] = {0};
string ans = "";
for (int i = 0; i < l1; ++i)
num1[i] = a1[l1 - 1 - i] - '0';
for (int i = 0; i < l2; ++i)
num2[i] = a2[l2 - 1 - i] - '0';
int lmax = l1 > l2 ? l1 : l2;
for (int i = 0; i < lmax; ++i)
{
num1[i] += num2[i];
num1[i + 1] += num1[i] / 10;
num1[i] %= 10;
}
if (num1[lmax])
lmax++;
for (int i = lmax - 1; i >= 0; --i)
{
ans += num1[i] + '0';
}
return ans;
}
string big_mul(string a1, string a2)
{
// if (a1 == "0" || a2 == "0")return "0";
const int l = 5005;
int l1 = a1.size(), l2 = a2.size(), num1[l] = {0}, num2[l] = {0}, carry[l] = {0};
string ans = "";
// 倒序剥离数位
for (int i = 1; i <= l1; ++i)
num1[i] = a1[l1 - i] - '0';
for (int i = 1; i <= l2; ++i)
num2[i] = a2[l2 - i] - '0';
// 核心
for (int i = 1; i <= l1; ++i)
{
for (int j = 1; j <= l2; ++j)
{
carry[i + j - 1] += num1[i] * num2[j];
}
}
// 统一处理进位
for (int i = 1; i <= l1 + l2; ++i)
{
carry[i + 1] += carry[i] / 10;
carry[i] %= 10;
}
// 转换
if (carry[l1 + l2])
ans += carry[l1 + l2] + '0';
for (int i = l1 + l2 - 1; i >= 1; --i)
{
ans += carry[i] + '0';
}
return ans;
}
int main()
{
int n;
cin >> n;
string sum_mul, sum_add = "0";
for (int i = 1; i <= n; ++i)
{
sum_mul = "1";
for (int j = 1; j <= i; ++j)
{
sum_mul = big_mul(sum_mul, to_string(j));
}
sum_add = big_add(sum_add, sum_mul);
}
cout << sum_add;
}
代码如下:
#include
using namespace std;
int main()
{
int n, cnt = 0;
char k;
cin >> n >> k;
for (int i = 1; i <= n; ++i)
{
string s = to_string(i);
int l = s.length();
for (int j = 0; j < l; ++j)
{
if (s[j] == k)
++cnt;
}
}
cout << cnt;
}
#include
using namespace std;
int main(){
double k,n=0,sn=0;//对于级数而言精度很重要
cin >> k;
while(sn<=k) {
sn += 1/++n;
}
cout << n;
}
代码如下:
#include
using namespace std;
int main()
{
int k, yushu, wage = 1;
long long coin = 0;
cin >> k;
while (k)
{
yushu = min(k, wage);
k -= yushu;
coin += yushu * wage++;
}
cout << coin;
}
代码如下:
#include
using namespace std;
int main()
{
int n;
cin >> n;
cout << (n + 1) * n / 2;
}
#include
using namespace std;
bool prime(int n)
{
if (n == 2)
return true;
if (n % 2 == 0)
return false;
for (int i = 3; i * i <= n; i += 2)
{
if (n % i == 0)
return false;
}
return true;
}
int main()
{
int l, sum = 0, cnt = 0;
cin >> l;
for (int i = 2; sum < l; ++i)
{
if (prime(i))
{
sum += i;
if (sum <= l)
{
cout << i << endl;
++cnt;
}
}
}
cout << cnt;
}
代码如下:
#include
using namespace std;
bool hw(long long n)
{
// long long reversed = 0, ori = n;
// while (n != 0)
// {
// int digit = n % 10;
// reversed = reversed * 10 + digit;
// n /= 10;
// }
// return ori == reversed;
string s1 = to_string(n);
string s2 = s1;
reverse(s1.begin(), s1.end());
return s1 == s2;
}
int main()
{
long long a, b;
cin >> a >> b;
vector<bool> is_prime(b + 1, true);
vector<long long> prime;
for (long long i = 2; i * i <= b; ++i)
{
if (is_prime[i])
{
for (long long j = i * i; j <= b; j += i)
is_prime[j] = false;
}
}
for (long long i = a; i <= b; ++i)
{
if (is_prime[i] && hw(i))
cout << i << endl;
}
}
代码如下:
#include
using namespace std;
int main()
{
int step = 0;
float s, k = 0;
cin >> s;
while (s >= k)
{
k += 2 * pow(0.98, step);
++step;
}
cout << step;
}
代码如下:
#include
using namespace std;
int main()
{
string s;
cin >> s;
if (s[0] == '-')
{
reverse(s.begin() + 1, s.end());
while (s[1] == '0')
{
s.erase(s.begin() + 1);
}
}
else
{
reverse(s.begin(), s.end());
while (s[0] == '0')
{
s.erase(s.begin());
}
}
if (s.empty())
s = '0';
cout << s;
}
代码如下:
#include
using namespace std;
#define v5 sqrt(5)
int main()
{
int n;
cin >> n;
double fn = (pow((1 + v5) / 2, n) - pow((1 - v5) / 2, n)) / v5;
printf("%.2f", fn);
}
代码如下:
#include
using namespace std;
int main()
{
int n, maxx = 0, minn = 1001;
cin >> n;
for (int i = 0; i < n; ++i)
{
int a;
cin >> a;
maxx = max(a, maxx);
minn = min(a, minn);
}
cout << maxx - minn;
}
代码如下:
#include
using namespace std;
int main()
{
int n, maxx = 0, mark = 1, pre = -1, now;
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> now;
if (now == pre + 1)
{
mark++;
}
else
{
maxx = max(maxx, mark);
mark = 1;
}
pre = now;
}
maxx = max(maxx,mark);
cout << maxx;
}
代码如下:
// #include
// using namespace std;
// int main()
// {
// long long n, maxx = 0;
// cin >> n;
// vector pri(n + 1, true);
// for (long long i = 2; i * i <= n; ++i)
// {
// if (pri[i])
// {
// for (int j = i * i; j <= n; j += i)
// {
// pri[j] = false;
// }
// }
// }
// for (long long i = 2; i <= n; ++i)
// {
// if (pri[i] && n % i == 0)
// {
// maxx = max(maxx, i);
// }
// }
// cout << maxx;
// }
// #include
// using namespace std;
// int main() {
// long long n;
// cin >> n;
// long long maxx = 0;
// long long i = 2;
// while (n > 1) {
// if (n % i == 0) {
// maxx = max(maxx, i);
// while (n % i == 0) {
// n /= i;
// }
// }
// i++;
// }
// cout << maxx;
// return 0;
// }
#include
using namespace std;
bool is_pri(long long a)
{
if (a == 2)
return true;
if (a % 2 == 0)
return false;
for (long long i = 3; i * i <= a; i += 2)
{
if (a % i == 0)
return false;
}
return true;
}
int main()
{
long long n, i = 2, maxx = 0;
cin >> n;
if (n % 2 == 0 && is_pri(n / 2))
{
cout << n / 2;
}
else
{
for (long long i = 3; i * i <= n; i += 2)
{
if (n % i == 0)
{
if (is_pri(i) && is_pri(n / i))
{
cout << n / i;
}
}
}
}
}
代码如下:
#include
using namespace std;
int main()
{
int n;
cin >> n;
int cnt1 = 1, cnt2 = 1;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
printf("%02d", cnt1++);
}
cout << endl;
}
cout << endl;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < 2 * (n - i - 1); ++j)
{
cout << " ";
}
for (int k = 0; k < i + 1; ++k)
{
printf("%02d", cnt2++);
}
cout << endl;
}
}
代码如下:
#include
using namespace std;
int main()
{
int n, sum = 0, maxx = -1, minn = 11;
cin >> n;
for (int i = 0; i < n; ++i)
{
int a;
cin >> a;
sum += a;
maxx = max(a, maxx);
minn = min(a, minn);
}
printf("%.2f", (sum - maxx - minn) * 1.0 / (n - 2) * 1.0);
}
代码如下:
#include
using namespace std;
int main()
{
int n, x = 0, k = 0;
cin >> n;
x = n / 364 - 3;
k = 1;
while (x > 100)
{
x -= 3;
++k;
}
cout << x << endl
<< k;
}
代码如下:
#include
using namespace std;
int main(){
int mon[13],cnt_leave=0,sum=0;
for(int i=0;i<12;++i) {
cin >> mon[i];
}
for(int i=0;i<12;++i) {
cnt_leave += (300-mon[i]);//每个月剩余的钱累加
if(cnt_leave<0) {
sum = -(i+1);//剩余的钱小于0的时候sum为负触发最后的特判
break;
}else if(cnt_leave>100) {//当余钱大于100且
sum += (cnt_leave/100)*100;
cnt_leave %= 100;
}
}
if(sum<0){
cout << sum;
}else{
cout << sum*1.2+cnt_leave;
}
}