不用除号,计算除法运算。思路是使用减法运算!
思路1:循环采用减法每次减去n,直到做完减法之后结果小于0为止 但是这样次数较大
     如求100/3,需要次数为34次。
 思路2:循环采用减法每次减去k,K的值每次会增加2倍,也就是左移1位,这样来优化思路1的算法
       如求100/3,需要次数为3*2^i == 100时候的i的值,i=5时 3*2^6=96,i=6时 3*2^6=128,再计算4中几个3即可
        k = 3*2^0          sum = 1<<0;
      = 3*2^1           sum = 1<<2;
        .                              .
        .                              .
                 = 3*2^5          sum = 1<<5; 
                 = 3*2^6          sum !=1<<6; //因为3*2^6 == 128,这是边界值,3*2^5 < 100 < 3*2^6.100-3*2^5=4 > 3,故需要计算100-96中有多少个3

贴出思路2的代码

 1 #include <stdio.h>
2 #include <stdlib.h>
3 //计算 a/b 的值.
4 int div(int a, int b){
5 int m,n,k,i,sum,tmp;
6 //计算 m / n 的结果
7 m = a;
8 n = b;
9
10 k = n;
11 sum = 0;//最后结果
12 i = 0;//循环变量
13 //边界值判断
14 if(a < 0 || a < b)
15 return 0;
16
17 while(m >= k){
18 sum = 1<<i;
19 tmp = k;//记录扩大前的因子,供边界调试时候使用
20 k = k<<1;//因子不断的以2的倍数扩大
21 i++;
22 }
23 //比如100/4时,i=4时,k=64,sum=16;i=5时,k=128,此时100<128,需要再计算(100-64)中含有几个4,即下面的递推公式
24 sum += div(m-tmp,b);//边界值计算
25 return sum;
26 }
27 int main(int argc, char *argv[]){
28
29 int m,n,k,i,sum,tmp;
30 //计算 m / n 的结果
31 m = atoi(argv[1]);
32 n = atoi(argv[2]);
33 sum = div(m, n);
34 printf("减法%d/%d=%d\n",m,n,sum);
35 return 0;
36 }

C语言中的除法的计算的更多相关文章

  1. 04 Storage and Calculation C语言中的存储和计算

    文章内容来源于Programming Hub的学习记录,本人整理添加了中文翻译,如有侵权,联系本人删除 Variables C语言中的变量 Let's extend our mainfunction ...

  2. 关于C语言中结构体大小计算

    结构体大小的计算,.网上说法一大堆还都不一样分什么对齐不对齐,偏移量什么的.. 在此稍微举例简单总结下: 对齐原则:每一成员的结束偏移量需对齐为后一成员类型的倍数  补齐原则:最终大小补齐为成员中最大 ...

  3. C语言中结构体大小计算

    1.普通结构体 struct student { char sex; char a; char b; int age; char name[100]; }; 该结构体大小为108 解答:1.先算str ...

  4. C语言中计算变量占用内存空间

    C语言中计算变量占用内存空间 在C语言中通常用[sizeof]运算符计算变量占内存空间,如下面的例子:

  5. C语言中复数运算及调用blas,lapack中复数函数进行科学计算

    C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色.这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计 ...

  6. C语言中的宏定义

    目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的 ...

  7. 《C语言深度剖析》学习笔记----C语言中的符号

    本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...

  8. C语言中函数参数传递

    C语言中函数参数传递的三种方式 (1)值传递,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值.(2)地址传递,就是把 ...

  9. 【R语言入门】R语言中的变量与基本数据类型

    说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...

随机推荐

  1. Python中的括号()、[]、{}

    长时间不用容易混淆,仅记! 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{} . Python中的小括号(): 代表tuple元祖数据类型,元祖是一种不可变序列.大多 ...

  2. Celery Task(定时任务)及参数

    celery beat 是一个调度器:它以常规的时间间隔开启任务,任务将会在集群中的可用节点上运行. 默认情况下,入口项是从 beat_schedule 设置中获取,但是自定义的存储也可以使用,例如在 ...

  3. 0x03

    指数级枚举:1到n任意选取的所有方案数: #include<bits/stdc++.h> using namespace std; int n,a[1100],vis[1100],cnt, ...

  4. [mysql课程作业]我的大学|作业

    第八周周五 1.将xs表中王元的专业改为"智能建筑". # update xs set 专业名='智能建筑' where 姓名='王元'; # select * from xs w ...

  5. webpack 之js兼容性处理

    webpack 之js兼容性处理 // 用来拼接绝对路径的方法 const {resolve} = require('path') const HtmlWebpackPlugin = require( ...

  6. 个人网站迁移之旅:从博客到知识库,从 Hexo 到 Docusaurus

    或是出于跟风,或是为了简历能好看点,2020 年 2 月,在翻看了中文互联网大量的「免费个人网页搭建教程」后,我选择了 Hexo + Github Pages 的方案,找了一款看上去还不错的主题,搭建 ...

  7. 如何保证redis中存放的都是热点数据

    当redis使用的内存超过了设置的最大内存时,会触发redis的key淘汰机制,在redis 3.0中有6种淘汰策略: noeviction: 不删除策略.当达到最大内存限制时, 如果需要使用更多内存 ...

  8. 菜鸡的Java笔记 - java 断言

    断言:assert (了解)        所谓的断言指的是在程序编写的过程之中,确定代码执行到某行之后数据一定是某个期待的内容        范例:观察断言 public class Abnorma ...

  9. mongodb(一)

    文档是 MongoDB 的核心,类似于 SQLite 数据库(关系数据库)中的每一行数据.多个键及其关联的值放在一起就是文档.在 Mongodb 中使用一种类 json 的 bson 存储数据,bso ...

  10. axios通过post请求下载文件/图片

    我们平常下载文件一般都是通过get请求直接访问进行下载, 但是当有特殊情况如权限控制之类的会要求我们通过post请求进行下载,这时就不一样了, 具体方法是通过协调后端,约定返回的文件流,请求的resp ...