zoukankan      html  css  js  c++  java
  • 8除不尽的自然数

    8除不尽的自然数

    8除不尽的自然数

    Table of Contents

    1 问题

    一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a,又知道这个自然数被17除余4,所得的商被17除余15,最后得到的一个商是a的两倍。求这个自然数。

    2 分析

    这个题目有两种解法:顺序解法和逆序解法。顺序解法假定这个数从512开始(8*8*8),然后按照题目要求顺藤摸瓜,最后求得两个商a和b,如果2*a=b,那么找到了这个数。逆序解法是假设商从0开始然后逆序得到最初的被除数。在这里给出顺序解法的c解决方案

    3 解决方案

    顺序解决方案

     1:  /**
     2:   * @file   019naturlnumber8.c
     3:   * @author Chaolong Zhang <emacsun@163.com>
     4:   * @date   Sun May 19 14:54:55 2013
     5:   * 
     6:   * @brief  一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a,又知道这个自然数被17除余5,所得的商被17除余15,最后得到的一个商是a的两倍。求这个自然数。
     7:   * 
     8:   * 
     9:   */
    10:  #include <stdio.h>
    11:  
    12:  int main(int argc, char *argv[])
    13:  {
    14:    int n=512;
    15:    int a,b;
    16:    for (n=512; n < 9999999; ++n)
    17:    {
    18:      if ( n%8==1 )
    19:      {
    20:        if ( (n/8) % 8 == 1 )
    21:        {
    22:          if( ((n/8)/8)%8 ==7 )
    23:          {
    24:            a= ((n/8)/8)/8;
    25:          }
    26:        }
    27:        else continue;
    28:      }
    29:      else continue;
    30:      if (n%17 == 4)
    31:      {
    32:        if ( (n/17)%17 == 15 )
    33:        {
    34:          b = (n/17)/17;
    35:        }
    36:      }
    37:      else continue;
    38:      if (2*a==b)
    39:      {
    40:        printf ("the number is%d \n",n);
    41:      }
    42:      else continue;
    43:    }
    44:    return 0;
    45:  }
    

    Date: 2013-05-19 15:31

    Author: emacsun

    Org version 7.8.02 with Emacs version 23

    Validate XHTML 1.0
  • 相关阅读:
    用简单C程序分析DOS下的EXE文件【转】
    汇编函数的调用[转自KingofCoders]
    windows下的shellcode剖析浅谈[转自看雪]
    如何写一个简单的病毒程序[转]
    不用注册访问论坛技巧
    函数调用堆栈变化分析[转自看雪]
    IT学生解惑真经(下载)
    Windows 汇编语言编程教程[转]
    ESP定律介绍(转自看雪论坛贴)
    【Anti Virus专题】1.1 病毒的原理 [转自看雪]
  • 原文地址:https://www.cnblogs.com/chaolong/p/3086885.html
Copyright © 2011-2022 走看看