目录
1. 计数质数 ☆
2. 筛选10到1000的回文数 ☆
3. 计算位于矩阵边缘的元素之和 ★
1. 计数质数
统计所有小于非负整数 n
的质数的数量。
示例 1:
输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
示例 2:
输入:n = 0 输出:0
示例 3:
输入:n = 1 输出:0
提示:
0 <= n <= 5 * 10^6
代码:
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
int countPrimes(int n)
{
vector<bool> primesMap(n, true);
int count = 0;
for (int i = 2; i < n; i++)
{
if (primesMap[i])
{
count++;
for (int j = 2 * i; j < n; j += i)
{
primesMap[j] = false;
}
}
}
return count;
}
};
int main()
{
Solution s;
cout << s.countPrimes(10) << endl;
cout << s.countPrimes(0) << endl;
cout << s.countPrimes(1) << endl;
return 0;
}
输出:
4
0
0
2. 筛选10到1000的回文数
Palindrome Number
设n是一任意自然数,若将n的各位数字反向排列所得自然数与原自然数n相等,则称n为回文数。
例如,n = 12321
代码:
#include <stdio.h>
int main()
{
int m,n,k,count=0;
for(m=10; m<1000; m++)
{
k=m;
n=0;
while(k>0)
{
n=n*10+(k%10);
k=k/10;
}
if(m == n)
{
printf("%d\t", m);
if(++count%5==0) printf("\n");
}
}
printf("\nTotal:%d\n", count);
return 0;
}
输出:
11 22 33 44 55
66 77 88 99 101
111 121 131 141 151
161 171 181 191 202
212 222 232 242 252
262 272 282 292 303
313 323 333 343 353
363 373 383 393 404
414 424 434 444 454
464 474 484 494 505
515 525 535 545 555
565 575 585 595 606
616 626 636 646 656
666 676 686 696 707
717 727 737 747 757
767 777 787 797 808
818 828 838 848 858
868 878 888 898 909
919 929 939 949 959
969 979 989 999
Total:99
3. 计算位于矩阵边缘的元素之和
输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
示例:
输入:3 3 3 4 1 3 7 1 2 0 1 输出:15 解释:15 = 3+4+1+3+1+2+0+1。第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。 接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。
代码:
#include<stdio.h>
int main()
{
int a[256][256];
int n,m,i,j,sum=0;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
if (i == 1 || i == n || j == 1 || j == m) sum += a[i][j];
}
}
printf("%d",sum);
return 0;
}
输入输出:
3 3
3 4 1
3 7 1
2 0 1
15
🌟 每日一练刷题专栏
✨ 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
![]() | C/C++ 每日一练 |
![]() | Python 每日一练 |