DMG

Dvojaki broj

DMG
Mar 8th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. main()
  5. {
  6.       int n, i, m, a, b, c, d, e, f1, f2;
  7.       cin >> n;
  8.       i=0;
  9.       m=n;
  10.       do
  11.       {
  12.           m = m/10;
  13.           i=i+1;
  14.       }
  15.       while (m > 0);
  16.       switch (i)
  17.       {
  18.              case 1: cout << "Broj je jednocifren i on je dvojaki" << endl; break;
  19.              
  20.              case 2: cout << "Broj je dvocifren i on je dvojaki" << endl; break;
  21.              
  22.              case 3: a=n%10; b=n/10%10; c=n/100;
  23.              if (a==b || a==c || b==c)
  24.              cout << "Broj je dvojaki" << endl;
  25.              else
  26.              {
  27.                  f1 = c * 100 + b * 10 + b;
  28.                  f2 = c * 100 + b * 10 + c;
  29.                  if (abs(f1-n) < abs(f2-n))
  30.                  cout << "Najblizi dvojaki broj je " << f1 << endl;
  31.                  else
  32.                  cout << "Najblizi dvojaki broj je " << f2 << endl;
  33.              }
  34.              break;
  35.            
  36.              case 4: a=n%10; b=n/10%10; c=n/100%10; d=n/1000;
  37.              if ((a==b && b==c)||(a==d && b==c)||(a==c && b==d)||(a==b && b==d)||(a==b && d==c)||(a==c && d==c)||(b==c && c==d)||(a==b && b==c && c==d))
  38.              cout << "Broj je dvojaki" << endl;
  39.              else
  40.              {
  41.                  f1 = d * 1000 + c * 100 + c * 10 + c;
  42.                  f2 = d * 1000 + c * 100 + d * 10 + d;
  43.                  if (abs(f1-n) < abs(f2-n))
  44.                  cout << "Najblizi dvojaki broj je " << f1 << endl;
  45.                  else
  46.                  cout << "Najblizi dvojaki broj je " << f2 << endl;
  47.              }
  48.              break;
  49.              
  50.              case 5: a=n%10; b=n/10%10; c=n/100%10; d=n/1000%10; e=n/10000;
  51.              if ((a==b && b==c && c==d)||(a==e && b==c && c==d)||(b==e && a==c && c==d)||(a==b && b==e && d==c)||(a==b && b==d && c==e)||(a==c && c==e && d==b)||(b==c && c==e && a==d)||(a==b && b==c && c==d)||(a==b && b==c && d==e)||(a==d && d==e && b==c)||(e==d && d==b && a==c)||(e==d && d==b && a==b)||(e==d && d==c && a==b)||(a==c && c==d && d==e)||(e==d && d==c && c==b)||(a==b && b==c && c==d))
  52.              cout << "Broj je dvojaki" << endl;
  53.              else
  54.              {
  55.                  f1 = e * 10000 + d * 1000 + d * 100 +  d * 10 + d;
  56.                  f2 = e * 10000 + d * 1000 + e * 100 +  e * 10 + e;
  57.                  if (abs(f1-n) < abs(f2-n))
  58.                  cout << "Najblizi dvojaki broj je " << f1 << endl;
  59.                  else
  60.                  cout << "Najblizi dvojaki broj je " << f2 << endl;
  61.              }
  62.              break;
  63.              
  64.              default: cout << "Broj je sestocifren" << endl; break;
  65.       }    
  66.       system ("PAUSE");
  67. }
Advertisement
Add Comment
Please, Sign In to add comment