zoukankan      html  css  js  c++  java
  • 将十进制转化为二进制

    例题:将十进制转化为二进制。(输入的数不大于10000)

    program demicalToBinary;
    
    type
    arrayType=array[1..14] of integer;
    
    var
    arr:arrayType;
    k,n,modNum,i,flag,highest:integer;
    
    
    begin
    readln(k);
    n:=1;
    
    
    while k>=2 do
    begin
    {
    writeln('this is in loop,status:k:',k,' n:',n);
    }
    modNum:=k mod 2;
    k:=k div 2;
    arr[n]:=modNum;
    n:=n+1;
    end;
    
    {
    writeln('now loop over,status:k:',k,' n:',n);
    }
    if k=1 
    then arr[n]:=1;
    
    
    
    flag:=0;
    for i:=14 downto 1 do
    if arr[i]=1
    then 
    begin
    flag:=1;
    highest:=i;
    break;
    end;
    
    for i:=highest downto 1 do
    write(arr[i]);
    
    
    end.

     上面是我写的代码。

    写代码时的收获是

    把人脑当计算机,人工去执行一遍过程。就能感觉到步骤都很简单,一步一步的执行出来。

    计算机也是这样执行的,只是它很快,一下就执行好了罢了。

    代码改进:大括号里是注释掉的代码

    Version2:

    program demicalToBinary;
    
    type
    arrayType=array[1..14] of integer;
    
    var
    arr:arrayType;
    k,n,modNum,i,flag,highest:integer;
    
    
    begin
    readln(k);
    n:=1;
    
    {
    while k>=2 do
    }
    while k<>0 do
    begin
    {
    writeln('this is in loop,status:k:',k,' n:',n);
    }
    modNum:=k mod 2;
    k:=k div 2;
    arr[n]:=modNum;
    n:=n+1;
    end;
    
    {
    writeln('now loop over,status:k:',k,' n:',n);
    }
    {
    if k=1 
    then arr[n]:=1;
    }
    
    {
    flag:=0;
    for i:=14 downto 1 do
    if arr[i]=1
    then 
    begin
    flag:=1;
    highest:=i;
    break;
    end;
    
    for i:=highest downto 1 do
    write(arr[i]);
    }
    for i:=n-1 downto 1 do
    write(arr[i]);
    
    
    end.

    版本2的代码,其实是做了两点

    第一点是最高位的值,在开始赋值时就可以知道。不用再去求一遍。这里参考答案的代码确实想的更好。

    第二点是最开始赋值的终止条件,不等于0。如果等于0的话,就结束了。而我当时想的条件是最后的值为1,对1还要做一次处理。没有它的那么更进一步,那么精巧。

    收获:代码只是实现,具体的思想是数学。数学设计的好,程序才能好。

  • 相关阅读:
    软件自动化测试工程师面试题集锦(1)
    IDEA Maven无法引入org.openjfx:javafx.base:11.0.0-SNAPSHOP
    Maven的dependency和dependencyManagement的区别
    在idea中创建多模块的SpringBoot项目
    MAVEN中三种packaging方式
    IntelliJ IDEA创建maven多模块项目
    Spring Boot 中使用 thrift 入门
    在IntelliJ IDEA使用.gitignore插件的方法和作用
    Git
    TortoiseGit安装、配置
  • 原文地址:https://www.cnblogs.com/lsjava/p/15374847.html
Copyright © 2011-2022 走看看