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:
- 刚开始写的时候出现了一点问题,出现了死循环,在这种情况下应该冷静地插入多个标记来看是哪里发生了死循环,并且尽快更正。
以上是关于Digit Generator UVa1583的主要内容,如果未能解决你的问题,请参考以下文章
例题3-5 Digit Generator UVA - 1583
紫书例题3-5 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)