zoukankan      html  css  js  c++  java
  • ACM.Self Numbers

    Description

    In 1949 the Indian mathematician D.R. Kaprekar discovered a class of numbers called self-numbers. For any positive integer n, define d(n) to be n plus the sum of the digits of n. (The d stands for digitadition, a term coined by Kaprekar.) For example, d(75) = 75 + 7 + 5 = 87. Given any positive integer n as a starting point, you can construct the infinite increasing sequence of integers n, d(n), d(d(n)), d(d(d(n))), .... For example, if you start with 33, the next number is 33 + 3 + 3 = 39, the next is 39 + 3 + 9 = 51, the next is 51 + 5 + 1 = 57, and so you generate the sequence 

    33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... 
    The number n is called a generator of d(n). In the sequence above, 33 is a generator of 39, 39 is a generator of 51, 51 is a generator of 57, and so on. Some numbers have more than one generator: for example, 101 has two generators, 91 and 100. A number with no generators is a self-number. There are thirteen self-numbers less than 100: 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, and 97. 

    Input

    No input for this problem.

    Output

    Write a program to output all positive self-numbers less than 10000 in increasing order, one per line.

    Code

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 { 
     7     bool b[10000]={false};
     8     int i=0,sum,d;
     9     for(i=0;i<10000;++i)
    10     {
    11         sum=d=i+1;
    12         for(;d>0;d/=10)
    13             sum+=d%10;
    14         if(sum-1<10000)
    15             b[sum-1]=true;
    16     }
    17     for(i=0;i<10000;++i)
    18         if(!b[i])
    19             cout<<i+1<<endl;
    20     
    21     return 0;
    22 }

    注:建立相应数组标记状态的方法值得学习。

     
  • 相关阅读:
    Two Sum II
    Subarray Sum
    Intersection of Two Arrays
    Reorder List
    Convert Sorted List to Binary Search Tree
    Remove Duplicates from Sorted List II
    Partition List
    Linked List Cycle II
    Sort List
    struts2结果跳转和参数获取
  • 原文地址:https://www.cnblogs.com/QuentinYo/p/2999459.html
Copyright © 2011-2022 走看看