Digit Generator UVa1583

Posted dreamworldclark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Digit Generator UVa1583相关的知识,希望对你有一定的参考价值。

技术分享图片

code:

 1 #include<stdio.h>
 2 
 3 //count the number of the digit.
 4 int count_digits(int a)
 5 {
 6     int count = 0;
 7     while(a)
 8     {
 9         a /= 10;
10         count++;
11     }
12     return count;
13 }
14 
15 //the function to be used to judge the digit
16 /*
17   yes : return the generator
18   no  : retur 0.
19 */
20 int judgement(int a)
21 {
22     int i = 0;
23     int count = count_digits(a);
24     for(i = a - count*9; i < a; i++)
25     {
26         int sum = i;
27         int temp = i;
28         while(temp > 0)
29         {            
30             sum += temp%10;
31             temp /= 10;
32         }
33         if(sum == a) return i;
34     }
35     return 0;
36 }
37 
38 int main()
39 {
40     int T, a;
41     scanf("%d",&T);
42     int i = 0;
43     for(; i < T; i++)
44     {
45         scanf("%d",&a);
46         printf("%d
",judgement(a));
47     }
48     return 0;
49 
50 }

ps:

  1. 刚开始写的时候出现了一点问题,出现了死循环,在这种情况下应该冷静地插入多个标记来看是哪里发生了死循环,并且尽快更正。

以上是关于Digit Generator UVa1583的主要内容,如果未能解决你的问题,请参考以下文章

例题3-5 Digit Generator UVA - 1583

紫书例题3-5 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

UVa 1587 - Digit Generator

UVA1583(最小生成元)

UVA1583 最小生成元