Sir

Ca si orice alta activitate, programarea depinde mult de factorul uman. Hai sa vedem ce ne face pe noi sa butonam.

Sir

Postby eric56 » 10 Jan 2012, 17:58

Ah, șirurile astea...

Salutare,
Are cineva idei cum să determin al n-lea termen al șirului următor ?

1,1,2,2,1,2,3,3,3,1,2,3,4,4,4,4 etc. ?

Regula este :
a1=1
a2=1
a3=2 deci se genereaza de a3 ori
a4= a 2-a oara s-a terminat generarea lui a3 , deci :
a5=1
a6=2
a7=3 deci se genereaza de a7 ori
a8=3
a9=3

etc
...

Cum pot genera șirul in C++ ?
0,0p / 0 votes
Respecta si vei fi respectat
User avatar
eric56
Bit
 
Joined: 19 Dec 2011
Status: 0

Re: Sir

Postby jolgau » 10 Jan 2012, 20:00

  1. CITIRE n
  2. a = 1
  3. CAT TIMP n != 0 EXECUTA
  4.       PENTRU i=1, a
  5.                TIPARIE a
  6.       SF.PENTRU
  7.       PENTRU i=1,a
  8.                TIPARIRE i
  9.       SF.PENTRU      
  10.       a++
  11.       n--
  12. SF.CAT TIMP
0,0p / 0 votes
User avatar
jolgau
Bit
 
Joined: 11 Dec 2010
Status: 0

Re: Sir

Postby eric56 » 10 Jan 2012, 23:00

Am terminat problema acum ceva timp dar am uitat să pun EDIT , mulțumesc că ai vrut să mă ajuți
0,0p / 0 votes
Respecta si vei fi respectat
User avatar
eric56
Bit
 
Joined: 19 Dec 2011
Status: 0

Re: Sir

Postby andreiandreiq » 10 Jan 2012, 23:09

Putem sa vedem si noi codul ? :)
0,0p / 0 votes
Image
User avatar
andreiandreiq
Word
 
Joined: 30 Dec 2009
Status: 33.33

Re: Sir

Postby eric56 » 10 Jan 2012, 23:42

Desigur :)

Problema se numește magice și a fost dată la faza pe sector clasa a 6-a.
Are mai multe cerințe, sursa este la subpunctul 3

  1. #include<stdio.h>
  2.  
  3. #include<math.h>
  4.  
  5. int main()
  6.  
  7. {
  8.    
  9. freopen  ( "magice.in","r",stdin ) ;
  10.  
  11. freopen  ( "magice.out","w",stdout ) ;
  12.  
  13. long  n, x, d, i, k, s=0, cx, cate=0, c, v[10001], pp=1 , j , elem , elemc ;
  14.  
  15. scanf ("%ld",&x);
  16.  
  17. cx=x;
  18.  
  19. scanf ("%ld",&n);
  20.  
  21. // subpunctul 1
  22.  
  23. for ( i = 1 ; i <= x/2 ; i++ )
  24.    
  25.     if ( x % i== 0 )
  26.        
  27.         s = s + i; // suma divizorilor
  28.  
  29. if ( s==x )
  30.    
  31.     printf ("1\n"); // daca  suma  divizorilor  -n  este  egala  cu  n  atunci  afisam  1
  32.  
  33. else
  34.    
  35.     printf ("0\n"); // altfel afisam 0
  36.  
  37. // subpunctul 2
  38.  
  39. i=1;
  40.  
  41. while (cx){
  42.    
  43.     c = cx % 10;
  44.    
  45.     cate++;
  46.    
  47.     v[i] = c; // punem cifrele numarului in vector
  48.    
  49.     i++;
  50.    
  51.     cx /=10; }
  52.  
  53. if (cate%2==0)
  54.    
  55.     for (k = 1 , j = cate/2 +1; k<= cate/2 && j<=cate; k++ , j++)
  56.        
  57.             {if ( v[k] != v[j] )
  58.            
  59.                 pp=0;
  60.             }
  61. else
  62.    
  63.     pp=0;
  64.  
  65. if(pp==1)
  66.    
  67.     {for ( i =cate/2 ; i>=1 ; i-- )
  68.        
  69.         printf ( "%ld", v[i] ) ;
  70.    
  71.     printf ( "\n" ) ;
  72.    
  73.     }
  74.    
  75. else
  76.    
  77.     printf  ( "-1\n" ) ;
  78.  
  79. //subpunctul 3
  80.  
  81. i=1;
  82.  
  83. elem=0;
  84.  
  85. while (i<=n){
  86.  
  87.     elem++;
  88.    
  89.     for ( j = 1 ; j < elem && i<=n ; j++ ){
  90.        
  91.         i++;
  92.        
  93.         elemc=j;}
  94.    
  95.     if (i<=n)
  96.        
  97.         for (j=1; j <=elem && i<=n ; j++ ){
  98.            
  99.             i++;
  100.            
  101.             elemc=elem;}
  102.     }
  103.  
  104. printf ( "%ld\n" , elemc) ;
  105.  
  106. return 0;
  107.  
  108. }
0,0p / 0 votes
Respecta si vei fi respectat
User avatar
eric56
Bit
 
Joined: 19 Dec 2011
Status: 0


Return to Discutii despre programare

Who is online

Users browsing this forum: No registered users and 0 guests