首页 > 其他分享 >7840 十全数 枚举check

7840 十全数 枚举check

时间:2024-10-17 16:43:08浏览次数:9  
标签:10 正整数 check sum 7840 int 枚举 全数

思路分析

  1. 定义十全数:十全数是指一个数的各位数字之和等于10的数。   2. 输入处理:程序首先读取一个正整数k,表示需要找到的第k个十全数。  
  • 枚举正整数:从1开始,逐个检查每个正整数是否是十全数。
  4. 检查函数check:  
  • 计算一个数n的各位数字之和。
 
  • 如果和等于10,返回true,否则返回false。
 
  • 计数和输出:
 
  • 使用一个计数器sum来记录找到的十全数的个数。
 
  • 当sum等于k时,输出当前数i,因为它是第k个十全数。
  6. 终止条件:一旦找到第k个十全数,程序输出结果并终止。  

关键点

 
  • 逐个检查:程序通过逐个检查每个正整数来找到十全数。
 
  • 效率:由于k的范围是1到10000,程序的效率足以在合理时间内找到结果。
#include<bits/stdc++.h>
#define ll long long
using namespace std;

const int N = 1e3+10, inf = 0x3f3f3f3f;

// 检查函数:判断一个数的各位数字之和是否等于10
int check(int n) {
    int sum = 0;
    while(n) {
        sum += n % 10; // 取出最低位数字并加到sum
        n /= 10; // 去掉最低位数字
    }
    return sum == 10; // 返回sum是否等于10
}

int main() {
    int k, sum = 0;
    cin >> k; // 读取输入的正整数k

    for(int i = 1; ; i++) { // 从1开始枚举所有正整数
        if(check(i)) sum++; // 如果i是十全数,计数加1
        if(sum == k) { // 如果找到了第k个十全数
            cout << i << endl; // 输出结果
            return 0; // 结束程序
        }
    }
    return 0;
}

 

标签:10,正整数,check,sum,7840,int,枚举,全数
From: https://www.cnblogs.com/jyssh/p/18472638

相关文章

  • 1601 添加运算符 枚举 递归dfs
    #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e3+10,inf=0x3f3f3f3f;inta[N],vis[N];intn,ans;//计算函数:根据运算符i对sum和a[x]进行运算intcal(intsum,inti,intx){if(i==1)returnsum+a[x];//加法......
  • 枚举值转换(字符串转换为枚举和整数转换为枚举)
    枚举值转换(字符串转换为枚举和整数转换为枚举) 假设定义了一个这样的枚举类型:enum MyEnum{aa = 1,bb = 2 } 1、字符串转换为枚举:string strA = "aa";MyEnummyEnum = (MyEnum)Enum.Parse(typeof(MyEnum),strA);上面的方法是区分大小写的,也就是说,如......
  • c#声明枚举,通过枚举int获取枚举value、通过枚举value获取int值、判断string值是否存在
    c#声明枚举,通过枚举int获取枚举value、通过枚举value获取int值、判断string值是否存在枚举中 1、声明枚举每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。注意:第一个枚举成员的默认值为整型的0,后续枚举成员的值在前......
  • qt5报错无法枚举xxx字体:qt.qpa.fonts: Unable to enumerate family ' "WenYue XinQing
    问题描述:使用qt5时,出现错误提示:qt.qpa.fonts:Unabletoenumeratefamily'"WenYueXinQingNianTi(Non-CommercialUse)"'虽然不影响正常使用,但是还是希望解决。猜测:可能是qt5在自动枚举字体时,系统中安装的字体名称过长或其他参数不合规导致qt5无法枚举。如果此字体不是项......
  • Educational Codeforces Round 170 (Rated for Div. 2) D.Attribute Checks (没有完全
    算法显然为dp状态设计\(dp_{i,j}\)表示在第\(i\)个获得能力点的地方,之前智慧能力值为\(j\),时的最大分数状态转移显然需要从\(dp_{i-1,j}\)转移而来枚举\(j\in[0,i)\)则有(注意取\(\max\)操作要与自己相比较)设第\(i-1\)个能力点到第\(i\)个能......
  • D. Attribute Checks
    链接:https://codeforces.com/contest/2025/problem/D题目:思路:动态规划。dp[i]记录当前0分配了i个给智力所能达到的最大分数。利用strength[N],intel[N]表示小于等于i的个数,所以加上前缀和赋值给dp[i],然后清空两个数组,方便这个零到下个零的这段。代码:#include<iostream>usi......
  • CF1814B. Long Legs 题解 枚举
    题目链接:https://codeforces.com/problemset/problem/1814/B题目大意有一个无限大的二维平面,我们用\((x,y)\)来表示平面中横坐标为\(x\)纵坐标为\(y\)的那个位置。一个机器人被放置在该二维平面的\((0,0)\)位置中。该机器人的腿长可以调节。最初,它的腿长为\(1\)。......
  • 第2课-枚举、排序、贪心
    前言如果认为自己代码没问题,换行问题,边界问题等都处理了还是不行,可以试试交C++(GCC9)该类型,因为部分题目是UVA上的老题,可能不支持新版本的C++。如果提交UNKNOWNERROR,应该是没绑定UVA账号,洛谷右上角个人设置里去填写注册一下即可。除法Division思路这个题一定要注意输......
  • c3p0数据库连接池出现Could not get JDBC Connection An attempt by a client to chec
    c3p0有些年头了,也曾红极一时。但你是否遇到过,明明并发并不高,连接池最大连接数也设的挺大了,还是报无法获取新连接。CouldnotgetJDBCConnectionAnattemptbyaclienttocheckoutaConnectionhastimedout.参考文章:https://cloud.tencent.com/developer/article/2319703......
  • 再谈java枚举enum
    一、认识枚举枚举是一种特殊类枚举的定义:修饰符enum枚举名{枚举项1,枚举项2,枚举项3;其他成员;}注意:枚举的第一行只能写枚举项,多个枚举项用逗号(,),隔开每一个枚举项都是一个常量(不可改变值),且都指向一个该枚举的对象二、为什么要使用枚举例如,有这么一方......