Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : Mai 10, 2010, 05:34:20
Merci!
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 024 Sume : Mai 10, 2010, 05:31:52
Poate cineva sa dea mai multe exemple pentru problema asta ?

Pentru primul exemplu daca afisez :
4
1 3 4 2

este ok ?

De ce testele din exemplu nu sunt in testul de verificare al problemei ?  Fighting
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : Mai 08, 2010, 23:33:41
Eu cred ca solutia mea este buna iar a voastra nu este!

Nu e normal, imi da ok pana la 50.000 si iau tot 0 puncte.

Ce am gresit ?

Cod:
#include <iostream>
#include <fstream>
using namespace std;

#include<stdio.h>


int calcul(int n)
{
  int ult = n%10;
 
  int ret = 0;
  switch(ult)
  {
    case 0:
      ret = 0;
      break;
    case 1:
      ret = 1;
      break;
    case 2:
      switch (n%4)
      {
        case 1:
          ret = 2;
          break;
        case 2:
          ret = 4;
          break;
        case 3:
          ret = 8;
          break;
        case 0:
          ret = 6;
          break;
      }
      break;
    case 3:
      switch (n%4)
      {
        case 1:
          ret = 3;
          break;
        case 2:
          ret = 9;
          break;
        case 3:
          ret = 7;
          break;
        case 0:
          ret = 1;
          break;
      }
      break;
    case 4:
      switch (n%2)
      {
        case 1:
          ret = 4;
          break;
        case 0:
          ret =6;
          break;
      }
      break;
    case 5:
      ret =5;
      break;
    case 6:
      ret =6;
      break;
    case 7:
      switch (n%4)
      {
        case 1:
          ret = 7;
          break;
        case 2:
          ret = 9;
          break;
        case 3:
          ret = 3;
          break;
        case 0:
          ret = 1;
          break;
      }
      break;
    case 8:
      switch (n%4)
      {
        case 1:
          ret = 8;
          break;
        case 2:
          ret = 4;
          break;
        case 3:
          ret = 2;
          break;
        case 0:
          ret = 6;
          break;
      }
      break;
    case 9:
      switch (n%2)
      {
        case 1:
          ret = 9;
          break;
        case 0:
          ret = 1;
          break;
      }
      break;   
  }
 
  return ret;
}

int ncalcul(int n)
{
  int s = 0;
  for(int i=1;i<=n;i++)
  {
    s += calcul(i);
    if(s > 9)
      s = s%10;
  }
  return s;
}


int main()
{
 //78907809780 -- asta nu merge, mi imi da 2 si voua 6 , dar de ce ?

    int n = 0, k = 0;
  freopen("cifra.in","r",stdin);
  freopen("cifra.out","w",stdout);
  scanf("%d",&n);
  for(int i=1;i<=n;i++)
  {
    scanf("%d",&k);
    int nr = k;
    int x = (((nr/20)%10)*4)%10;
    int y = ncalcul(nr%20);
    int z = (x+y)%10;
    printf("%d\n",z);
    //k = ncalcul(k);
    //printf("%d\n",k);
  }
  return 0;
}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines