蓝桥杯备赛day01:循环

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

分离整数的各个位数
#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	while(n>0){
		cout<<n%10<<" ";
		n=n/10;
	}
	return 0;
}
n = int(input())
while n > 0:
    print(n % 10, end=' ')
    n = n // 10
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();
    }
}
数字统计
#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;
}
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)

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无关的数
#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;
}
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)
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();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值