随堂作业——到底有几个“1”(C++)
一、设计思路
在课堂上讨论的时候,老师提出的思路是利用之前的结果计算出比它更大的数字的“1”。但是我不是这么想的,我是把输入的正整数每位上的数都分解出来计算。如abc,就先算c,再加上b,最后再加上a。
二、源代码
// one.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include "iostream.h" int FindOnes(int num)
{
int ones,mul,num1,num2,num3;
ones=;
mul=; //除数,10的n次方
num1=num2=num3=;
while(num/mul) //当取整后不为零的话,就循环计算
{
num1=num-(num/mul)*mul; //后一位上的数字
num2=(num/mul)%; //当前位数上的数字
num3=num/(mul*); //前一位上的数字
switch(num2) //若正整数为abc,b为当前位数
{
case : //余数为0时,包含a*mul个1;
ones+=num3*mul;
break;
case : //余数为1时,包含a*mul+c+1;
ones+=num3*mul+num1+;
break;
default: //其余>1的情况都是(a+1)*mul
ones+=(num3+)*mul;
break;
}
mul*= ; //改变除数,继续计算更高位
}
return ones;
}
int main(int argc, char* argv[])
{
int number,ones; //数字、1的个数
cout<<"请输入一个正整数:";
cin>>number;
ones=FindOnes(number);
cout<<number<<"中“1”的个数为"<<ones<<endl;
return ;
}
三、结果截图
四、心得体会
敲代码的时候,我以为会挺好写的,想用递归的思想来实现,但是没能自己将每位上的情况总结出来。于是借鉴了一下网上的思路,有个程序是一次性看三位,当前位、高一位和低一位。代码简洁完美。
我发现每次写这种注重算法的程序时,自己就捉襟见肘了,还是得多练,提高一下自己优化代码的能力。
随堂作业——到底有几个“1”(C++)的更多相关文章
- C语言程序设计第10堂作业
一.本次课主要内容: 本次课程学习数组,一种最基本的构造类型,它是一组相同类型数据的有序集合.数组中的元素在内存中连续存放,每个元素都属于同一种数据类型,用数组名和下标可以唯一地确定数组元素: (1) ...
- C语言程序设计第9堂作业
一.本次课主要内容: 本章将散布在前五章中的数据类型和表达式等内容做了归纳性的汇总,本次课需要掌握以下两个方面: (1)本次课通过从数据在计算机内的存储格式入手,介绍整型.字符型.单精度和双精度实型四 ...
- C语言程序设计第8堂作业
一.本次课主要内容: 本次课通过以下两个知识点来完成: (1)以数字金字塔为例,介绍函数的另一种形式,即不返回结果的函数.不返回结果的函数在定义.调用.参数传递.函数声明上,思路完全与以前相同,只是函 ...
- C语言程序设计第7堂作业
一.本次课主要内容: 本次以计算圆柱体体积为例,通过定义体积计算功能的函数和主函数调用的例子,引出函数定义的一般形式:函数首部加函数体,且在函数结尾处通过return 语句返回结果.本节要重 ...
- C语言程序设计第6堂作业
一. 本次课主要内容: 通过几个实例来进一步掌握循环结构的应用. 二. 实验内容:(70分) 1. 穷举算法(古典算术问题-搬砖头)某地需要搬运砖块,已知 ...
- C语言程序设计第5堂作业
一.本次课学习主要内容及知识结构点: 二.实验内容:(60分) 1. 求奇数和.输入一批正整数(以零或负数为结束标志),求其中的奇数和.试编写相应程序. 2. 展开式求和.输入一个实数 x,计算并输出 ...
- C语言程序设计第4堂作业
大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决. 本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...
- 软件工程随堂作业--随机产生30到四则运算(c语言)
#include "stdio.h" #include "math.h" #include "stdlib.h" #include" ...
- 福州大学W班-团队作业-随堂小测(同学录)成绩
作业链接 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1246 作业要求 1.题目 即编写一个能够记 ...
随机推荐
- Recover deleted pictures in iOS 9
A case about business secret. The suspect is an engineer in Hitec company, and compeitiors pay lots ...
- 文件服务器迁移—FSMT
www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=282
- leetcode 118
118. Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, ...
- Android:控件布局(表格布局)TableLayout
TableLayout继承LinearLayout 实例:用表格布局实现计算机布局>>>>>>>>>>>> 有多少个TableR ...
- CSS 居中效果完整指南
本文翻译自:<Centering in CSS: A Complete Guide> 使用 CSS 实现效果困难吗?显然不是.实际上有许多方法可以实现居中效果,但在具体情况中,我们往往无法 ...
- iOS 层层推进实现代理模式
1.代理模式核心思想:A类委托B类做某件事,然后A类获取B类的执行的返回结果! 举例:女孩想去买电影票,但是自己不亲自去而是委托男孩了解电影电影票信息,同时女孩获得男孩买票的结果,代码模拟实现: /* ...
- pthread_cond_wait避免线程空转
多线程对同一块区域进行操作时,需要定义如下两种类型的变量: pthread_mutex_t xxx; pthread_cond_t yyy; pthread_mutex_t类型的变量,即锁,对公共区域 ...
- 线程池(C#)
转自:http://blog.sina.com.cn/s/blog_494305f30100ryw7.html 在这里你可以学到Microsoft研究CLR实现线程池的原理机制,从而更灵活的处理CLR ...
- PHP数组操作大全
<?php /** * File: phpstudy : array_test.php * Created by PhpStorm. * User: IhMfLy Pheonix@jtv-070 ...
- Linux Shell脚本编程的注意事项
Linux下(Shell脚本 http://www.jbxue.com/jb/shell/)编程的一些注意事项,如编程风格.命名风格等. 一.常用技巧 ssh user@server bash < ...