蓝桥杯备赛day01:循环

这类题目较为简单,就不写解析了,提供三种语言的参考代码,欢迎在评论区讨论!

分离整数的各个位数
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	while(n>0){
		cout<<n%10<<" ";
		n=n/10;
	}
	return 0;
}
python 复制代码
n = int(input())
while n > 0:
    print(n % 10, end=' ')
    n = n // 10
java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        while (n > 0) {
            System.out.print(n % 10 + " ");
            n = n / 10;
        }
        scanner.close();
    }
}
数字统计
cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
    //读入L和R
    int L,R;
    cin>>L>>R;
    //范围[L, R]的所有整数
    int sum = 0;//sum和
    for(int i = L;i<=R;i++){//i遍历了L到R的所有数字
        int j = i;//i在循环里发生了变化,应该用别的数来存i。
        while(j>0){
            if(j%10==2){//判断此时的个位数是否是数字2.
               sum++;
            }
            j/=10;
        }
    }
    //输出
    cout<<sum;
    return 0;
}
python 复制代码
L, R = map(int, input().split())

sum_count = 0
for i in range(L, R + 1):
    j = i
    while j > 0:
        if j % 10 == 2:
            sum_count += 1
        j //= 10

print(sum_count)
java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int L = scanner.nextInt();
        int R = scanner.nextInt();
        int sumCount = 0;
        
        for (int i = L; i <= R; i++) {
            int j = i;
            while (j > 0) {
                if (j % 10 == 2) {
                    sumCount++;
                }
                j /= 10;
            }
        }
        System.out.println(sumCount);
        scanner.close();
    }
}
与7无关的数
cpp 复制代码
#include<iostream>
using namespace std;
 
bool isRelated(int n)
{
    if(n % 7 == 0)  // 能被7整除
        return true;
    while(n)    // 数字上有7
    {
        if(n % 10 == 7)
            return true;
        n /= 10;
    }
    return false;
}
 
int main()
{
    int n, sum = 0;
    cin >> n;
    for(int i = 1; i <= n; i++)
        if(!isRelated(i))   // 如果与7无关
            sum += i * i;
    cout << sum << endl;
    return 0;
}
python 复制代码
def is_related(n):
    if n % 7 == 0:  # 能被7整除
        return True
    while n > 0:    # 数字中有7
        if n % 10 == 7:
            return True
        n //= 10
    return False

n = int(input())
sum_of_squares = 0
for i in range(1, n + 1):
    if not is_related(i):  # 如果与7无关
        sum_of_squares += i * i

print(sum_of_squares)
java 复制代码
import java.util.Scanner;
public class Main {
    public static boolean isRelated(int n) {
        if (n % 7 == 0) {  // 能被7整除
            return true;
        }
        while (n > 0) {    // 数字中有7
            if (n % 10 == 7) {
                return true;
            }
            n /= 10;
        }
        return false;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int sumOfSquares = 0;
        
        for (int i = 1; i <= n; i++) {
            if (!isRelated(i)) {  // 如果与7无关
                sumOfSquares += i * i;
            }
        } 
        System.out.println(sumOfSquares);
        scanner.close();
    }
}
相关推荐
带娃的IT创业者1 小时前
Python 异步编程完全指南:从入门到精通
服务器·开发语言·python·最佳实践·asyncio·异步编程
zzb15803 小时前
RAG from Scratch-优化-query
java·数据库·人工智能·后端·spring·mybatis
wuqingshun3141593 小时前
如何停止一个正在退出的线程
java·开发语言·jvm
朱包林4 小时前
Python基础
linux·开发语言·ide·python·visualstudio·github·visual studio
xiaoye-duck4 小时前
《算法题讲解指南:递归,搜索与回溯算法--递归》--3.反转链表,4.两两交换链表中的节点,5.快速幂
数据结构·c++·算法·递归
Eward-an4 小时前
【算法竞赛/大厂面试】盛最多水容器的最大面积解析
python·算法·leetcode·面试·职场和发展
山栀shanzhi4 小时前
归并排序(Merge Sort)原理与实现
数据结构·c++·算法·排序算法
no_work4 小时前
基于python预测含MLP决策树LGBM随机森林XGBoost等
python·决策树·随机森林·cnn
Trouvaille ~4 小时前
【递归、搜索与回溯】专题(七):FloodFill 算法——勇往直前的洪水灌溉
c++·算法·leetcode·青少年编程·面试·蓝桥杯·递归搜索回溯
进击的雷神4 小时前
地址语义解析、多语言国家匹配、动态重试机制、混合内容提取——德国FAKUMA展爬虫四大技术难关攻克纪实
爬虫·python