<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Числа Армстронга
Исходник: armstrong [C++, code #672, hits: 1000, рейтинг: 3/7,4.86(342)] +
аноним: ilia1zz [добавлен: 12.12.2017] управление:
  1. #include <iostream>
  2. #include <ctime>
  3.  
  4.  
  5. int main() {
  6. int const ht=10;
  7. int RePow[ht][ht];
  8.  
  9. for (int i1 = 0; i1 < ht; ++i1)for (int i2 = 0; i2 <ht; ++i2) {
  10. RePow[i1][i2] = pow(i1, i2);
  11. }
  12.  
  13.  
  14. int const r = 100;
  15. int sum = 0, count = 0, max = 999999999, temp,t1,t2,joj=1,sum1=0,temp1,i=0,z=-1,po=0;
  16. int mass[r];
  17. unsigned int start_time = clock();
  18. while ( i < max) {
  19. temp = i;
  20. while (temp != 0) {
  21. t1 = temp % 10;
  22. temp = temp / 10;
  23. t2 = temp % 10;
  24. if (t1 < t2 && temp>0 && t1 != 0) { joj = 0; break;}
  25. ++count;
  26. }
  27. if (joj == 1) {
  28. temp = i;
  29. while (temp) {
  30. sum += RePow[temp % 10][ count];
  31. temp = temp / 10;
  32. }
  33. for (int j1 = 0; j1 < po; ++j1) {
  34. if (sum == mass[j1]) joj = 0;
  35. }
  36. if (joj != 0) {
  37. temp1 = sum;
  38. while (temp1) {
  39. sum1 += RePow[temp1 % 10][count];
  40. temp1 = temp1 / 10;
  41. }
  42. if (sum1 == sum) {
  43. std::cout << sum << std::endl;
  44. mass[po] = sum;
  45. ++po;
  46. }
  47. }
  48. }
  49. sum = 0; count = 0; joj = 1,temp1=0,sum1=0;
  50. ++i;
  51. }
  52. unsigned int end_time = clock(); // конечное время
  53. unsigned int search_time = end_time - start_time; // искомое время
  54. std::cout << search_time/1000.00<< std::endl;
  55. system("pause");
  56. return 0;
  57. }

+добавить реализацию
 
каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2000-2018 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.003892 секунд
Количество запросов к БД: 9, gzip: 6.6kb/26.1kb(75%)