C++之无子数
题目如下:

1 #include <iostream>
2
3 using namespace std;
4
5
6 bool isThisNumhaveChild(int num);
7
8
9 int main()
10 {
11 int begin_num1,end_num1,nochild_count1 = 0;
12 int begin_num2,end_num2,nochild_count2 = 0;
13 cin >> begin_num1 >> end_num1;
14 cin >> begin_num2 >> end_num2;
15 //分别调用这个函数
16 for(int i = begin_num1; i <= end_num1;i++)
17 {
18 bool flag = isThisNumhaveChild(i);
19 if(!flag)
20 {
21 nochild_count1++;
22 }
23 }
24 for(int i = begin_num2; i <= end_num2;i++)
25 {
26 bool flag = isThisNumhaveChild(i);
27 if(!flag)
28 {
29 nochild_count2++;
30 }
31 }
32 cout << "无子数是" << nochild_count1 << "个" << endl;
33 cout << "无子数是" << nochild_count2 << "个" << endl;
34 /*
35 int flag1 = isThisNumhaveChild(61);
36 int flag2 = isThisNumhaveChild(62);
37 int flag3 = isThisNumhaveChild(63);
38 int flag4 = isThisNumhaveChild(64);
39 int flag5 = isThisNumhaveChild(65);
40 cout << flag1 << endl;
41 cout << flag2 << endl;
42 cout << flag3 << endl;
43 cout << flag4 << endl;
44 cout << flag5 << endl;
45 */
46 }
47
48
49 bool isThisNumhaveChild(int num)
50 {
51 bool flag = false;
52 //i是D(x),i*num是X
53 int the_xnum;
54 //接收一下是第几个数让他成为有子数
55 int suppose_i;
56 for(int i = 1;i < 1000;i++)
57 {
58 int a,b,c,d,e = 0;//个十百千万
59 the_xnum = i*num;
60 if(the_xnum/10000 >= 1)
61 {//超过5位数 包括5位数
62 e = the_xnum/10000;
63 d = (the_xnum-e*10000)/1000;
64 c = (the_xnum-e*10000-d*1000)/100;
65 b = (the_xnum-e*10000-d*1000-c*100)/10;
66 a = (the_xnum-e*10000-d*1000-c*100 -b*10);
67 suppose_i = a + b + c + d + e;
68 }else if(the_xnum/1000 >= 1)
69 {//4位数
70
71 d = the_xnum/1000;
72 c = (the_xnum-d*1000)/100;
73 b = (the_xnum-d*1000-c*100)/10;
74 a = (the_xnum-d*1000-c*100 -b*10);
75 suppose_i = a + b + c + d;
76 }else if(the_xnum/100 >= 1)
77 {//3位数
78 c = the_xnum/100;
79 b = (the_xnum-c*100)/10;
80 a = (the_xnum-c*100 -b*10);
81 suppose_i = a + b + c;
82 }else if(the_xnum/10 >= 1)
83 {//2位数
84 b = the_xnum/10;
85 a = (the_xnum -b*10);
86 suppose_i = a + b;
87 }else
88 {//1位数
89 a = the_xnum;
90 suppose_i = a;
91 }
92
93 if(suppose_i == i)
94 {
95 //D(x) 和 应该D(X)的是一样的 break出来
96 //flag = i;
97 flag = true;
98 break;
99 }
100 }
101 return flag;
102 }
notes:
1.从line11到line33的代码冗余太多,且可修改性不高,如果要改成接收再多行的数据就捉襟见肘,待优化。
2.判断他是否有子的算法太简单了,时间复杂度大,算法待优化。
3.判断他是几位数时要注意不要忘记 = 了!!我就是这里错了结果多花了好多时间===
C++之无子数的更多相关文章
- thinkphp5控制器
// 定义应用目录 define('APP_PATH', __DIR__ . '/../app/'); // 定义配置文件目录和应用目录同级 define('CONF_PATH', __DIR__.' ...
- Echarts关于tree树数据渲染图例最新实例
最近做项目接到新的需求,根据本身系统结构数据做一个图形化展示,要求好看易用,有交互,就说了这么多,然后就要求两天给一版瞅瞅,MMP,真把前端当神了(你倒是把待遇提到神的地位啊...) 唉,吐槽归吐槽, ...
- UESTC 618 无平方因子数 ( 莫比乌斯)
UESTC 618 题意:求1到n中无平方因子数的个数 Sample Input 3 1 10 30 Sample Output 1 7 19 思路:与前面的BZOJ 2440相似 #inc ...
- cogs 2056. 无平方因子数
2056. 无平方因子数 ★☆ 输入文件:non.in 输出文件:non.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 给出正整数n,m,区间[n,m]内的无 ...
- Java实现 LeetCode 689 三个无重叠子数组的最大和(换方向筛选)
689. 三个无重叠子数组的最大和 给定数组 nums 由正整数组成,找到三个互不重叠的子数组的最大和. 每个子数组的长度为k,我们要使这3*k个项的和最大化. 返回每个区间起始索引的列表(索引从 0 ...
- [Swift]LeetCode689. 三个无重叠子数组的最大和 | Maximum Sum of 3 Non-Overlapping Subarrays
In a given array nums of positive integers, find three non-overlapping subarrays with maximum sum. E ...
- uestc 1720无平方因子数
求素数 然后容斥原理// n之内有平方因子的数的个数sum =n/(2^2) + n/(3^2)+……+n/(k^2) - n/(2^2 * 3^2)-……+……. // #pragma commen ...
- 最大连续子数组问题2-homework-02
1) 一维数组最大连续子数组 如第homework-01就是一维数组的最大子数组,而当其首位相接时,只需多考虑子数组穿过相接的那个数就行了! 2)二维数组 算法应该和第一次的相似,或者说是将二维转化为 ...
- CodeChef - SQRGOOD:Simplify the Square Root (求第N个含平方因子数)
Tiny Wong the chef used to be a mathematics teacher in a senior high school. At that time, he always ...
随机推荐
- 聊了聊宏内核和微内核,并吹了一波 Linux
看这里!!!https://mp.weixin.qq.com/s?__biz=MzI0ODk2NDIyMQ==&mid=2247494048&idx=1&sn=cacfc6a4 ...
- SpringCloud 2020.0.4 系列之 JWT用户鉴权
1. 概述 老话说的好:善待他人就是善待自己,虽然可能有所付出,但也能得到应有的收获. 言归正传,之前我们聊了 Gateway 组件,今天来聊一下如何使用 JWT 技术给用户授权,以及如果在 Gate ...
- Socket `accept queue is full ` 但是一个连接需要从SYN->ACCEPT
由于标题长度有限制,我把想要描述的问题再次描述下: 内核通常会为每一个LISTEN状态的Socket维护两个队列: 1 accept队列: listen()函数第二个参数BACKLOG指定,表示已完成 ...
- JMeter 5.4 打开测试计划 报错:Unexpected error
保存测试计划名为: 新增用户.jmx 关闭 JMeter 再次打开JMeter : 双击 jmeter.bat JMeter 启动 打开 新增用户.jmx Unexpected error. 看上图 ...
- uni-app nvue页面动态修改导航栏按钮
话不多说上代码 let pages = getCurrentPages() let page = pages[pages.length - 1]; let currentWebview = page. ...
- vue修改启动的端口和host
打开vue项目(dev) dev/config/ 路径修改index.js文件 然后对host和pord修改指定的即可 host: 'localhost', // can be overwritten ...
- (十.7) JDBC(使用IDEA连接数据库)
写SQL语句: 调出mysqlconsole alt + 8 ok,完毕.
- (四)DQL查询数据(最重点)
4.1 DQL Data Query Language 数据查询语言 1 所有的查询操作都用它 Select 2 简单的查询,复杂的查询它都能做 3 数据库中最核心的语言,最重要的语 ...
- 编解码再进化:Ali266 与下一代视频技术
过去的一年见证了人类百年不遇的大事记,也见证了多种视频应用的厚积薄发.而因此所带来的视频数据量的爆发式增长更加加剧了对高效编解码这样的底层硬核技术的急迫需求. 新视频编解码标准 VVC 定稿不久之后, ...
- Serverless 下的微服务实践
作者:弈川 审核&校对:筱姜.潇航 编辑&排版:雯燕 微服务架构介绍 微服务架构诞生背景 在互联网早期即 Web 1.0 的时代,当时流行的是单体应用,研发团队比较小,主要是外部网页, ...