• 1295.负权数


    这道题关键在于模拟连除倒取余数法,如何确定每一步“合适”的商和余数(因为余数不能为负),以保证商*除数+余数=被除数。此外要注意的一点是,正数%负数---余数是为正的(余数正负同被除数的正负)

     1 #include<iostream>
     2 #include<memory.h>
     3 #include<algorithm>
     4 #include<cmath>
     5 using namespace std;
     6 int main()
     7 {
     8     int N;
     9     while(cin>>N)
    10     {
    11         int r;
    12         cin>>r;
    13         char display[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    14         int mod[16];
    15         if(N==0)
    16         {
    17             cout<<0<<endl;
    18         }
    19         else
    20         {
    21             int i=0;
    22             while(N!=0)    //解题关键的思路实现
    23             {
    24                 int x=N/r;  //这是初步得出的商 ,可能要改
    25                 int y=N-(x*r);   //y是初步的余数,可能要改
    26                 N=N/r;       
    27                 if(y<0)  //由于余数不能用负数表示,故要想办法转化为正数。方法其实就是
    28                 {
    29                     y=y+abs(r);  //本位变为与进制的补植,同时向高位进一位
    30                     N++;
    31                 }
    32                 mod[i]=y;
    33                 i++;
    34             }
    35             for(int j=i-1;j>=0;j--)
    36             {
    37                 cout<<display[mod[j]];
    38             }
    39             cout<<endl;
    40         }
    41     }
    42     //system("pause");
    43     return 0;
    44 }
  • 相关阅读:
    java 基础(Collections 工具类的常用方法)
    Java 基础( Map 实现类: Properties)
    Java 基础(Map)
    Java 基础(集合三)
    Java 基础(集合二)
    Java 基础(集合一)
    Java 基础(Annotation)
    CentOS7 系统 springboot应用启动脚本
    GenericObjectPool源码分析
    问题springboot项目启动报错
  • 原文地址:https://www.cnblogs.com/cfhome/p/2693101.html
Copyright © 2020-2023  润新知