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 ...
随机推荐
- 深入剖析Redis客户端Jedis的特性和原理
一.开篇 Redis作为目前通用的缓存选型,因其高性能而倍受欢迎.Redis的2.x版本仅支持单机模式,从3.0版本开始引入集群模式. Redis的Java生态的客户端当中包含Jedis.Rediss ...
- Python小练习之验证“哥德巴赫猜想”
设计内容:任何一个大于2的偶数都可以分解为两个素数之和,这就是著名的哥达巴赫猜想. 设计要求:要求输入一个大于2的偶数,程序运行后,输出两个素数,其和正好等于该偶数. 1. 实验代码(知道是你们 ...
- 【完美解决】IDEA 中 Maven 报错 Cannot resolve xxx 和 Maven 中 Dependencies 报红/报错。
目录 前提 场景 解决办法 1.首先,清除缓存,点击之后重启IDEA. 2.关闭IDEA,打开项目文件夹 3.重新打开 IDEA,找到右边的 Maven 4.解决 Maven 中 Dependenci ...
- k8s入坑之路(14)scheduler调度 kubelet管理及健康检查 更新策略
kubelet 主要功能 Pod 管理 在 kubernetes 的设计中,最基本的管理单位是 pod,而不是 container.pod 是 kubernetes 在容器上的一层封装,由一组运行在同 ...
- STC单片机控制28BYJ-48步进电机
STC单片机4*4按键控制步进电机旋转 28BYJ-48型步进电机说明 四相永磁式的含义 28BYJ-48工作原理 让电机转起来 最简单的电机转动程序 电机转速缓慢的原因分析 便于控制转过圈数的改进程 ...
- vue中main.js配置后端请求地址
Vue.config.productionTip = false; axios.defaults.baseURL = 'http://127.0.0.1:8003/';//后端开发环境地址 // ax ...
- SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(2)
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续上一节针对我们的重试进行测试 验证针对限流器异常的重试正确 通过系列前面的源码分析 ...
- 在 Kubernetes 上安装 Gitlab CI Runner Gitlab CI 基本概念以及 Runner 的安装
简介 从 Gitlab 8.0 开始,Gitlab CI 就已经集成在 Gitlab 中,我们只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个Runner,即可进行持续集成.在介绍 ...
- InnoDB 索引详解
1.什么是索引 索引是存储引擎用于快速找到记录的一种数据结构. 2.索引有哪些数据结构 顺序查找结构:这种查找效率很低,复杂度为O(n).大数据量的时候查询效率很低. 有序的数据排列:二分查找法又称折 ...
- [cf1236F]Alice and the Cactus
首先,我们要用到期望的一个性质: 对于两个随机变量$X$和$Y$(不需要相互独立),有$E(X+Y)=E(X)+E(Y)$ 另外,对于一个仙人掌,令$n$为点数,$m$为边数,$c$为简单环个数,$X ...