1. Си / Говнокод #15983

    +131

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    #include <stdio.h>
    #include <tchar.h>
    
    #define MVALUE 6
    
    
    void bufret(int pos, int limit, int maxlimit, bool direction)
    {
    	putchar((char)((pos&0xff)+0x30)) ;
    	if(((pos<limit)&&direction)||((pos>1)&&(!direction)))
    	{   
         putchar('-') ;
    	 if(direction)
    		 pos++ ;
    	 else 
    		 pos--;
    	}    
    	else
    	{
          limit++ ;   
          if(direction)
    		pos=limit;
    	  else
    	    pos=1 ;
    	    direction=!direction ;
    	 
    		putchar('\n') ;
    	}
    	if(limit < maxlimit)
    		bufret(pos,limit,maxlimit,direction) ;
    
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	 bufret(1, 1, MVALUE+1, true) ;
    	 getchar() ;
    	return 0;
    }

    Решил наговнокодить по мотивам этой статьи:
    http://habrahabr.ru/post/116842/

    Как думаете, получилось,

    Запостил: ASDASD, 14 Мая 2014

    Комментарии (14) RSS

    • > (pos&0xff)+0x30
      0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C ...
      Ответить
    • > _tmain
      > _TCHAR
      Вижуалстудиеблядство детектед! Нафига писать прогу, которая работает и в юникоде и в анси, и при этом не компилится другими компиляторами? Ну я еще понимаю либу, но прогу то зачем?
      Ответить
    • > int pos, int limit

      нахуя.jpg
      Ответить
    • #include <stdio.h>
      
      int main()
      {
      	int i;
      	int j=0;
      	int step=0;
      	int innercycle=0;
      	printf("Enter i:\n");
      	scanf("%d", &i);
      
      	for(j; j<=i; j++)
      	{
      		step = step == 1 ? 0 : 1;
      
      		if(step == 0)
      		{
      			for(innercycle=1; innercycle<=j; innercycle++)
      			{
      				printf("%d", innercycle);
      				if(j != innercycle)
      					printf("-");
      			}
      
      			printf("\n");
      			continue;
      		}
      		if(step == 1)
      		{
      			for(innercycle=j; innercycle>=1; innercycle--)
      			{
      				printf("%d", innercycle);
      				if(innercycle != 1)
      					printf("-");
      			}
      
      			printf("\n");
      			continue;
      		}
      	}
      }
      Ответить
    • #include <stdio.h>
      
      int main() {
          puts("1\n2-1\n1-2-3\n4-3-2-1\n1-2-3-4-5\n6-5-4-3-2-1\n");
          return 0;
      }
      Ответить
      • Функционалист проклятый!

        #include <iostream>
        using std::cout;
        using std::endl;
        
        int main()
        {
            cout << "1" << endl << "2-1" << endl << "1-2-3" << endl << "4-3-2-1" << endl << "1-2-3-4-5" << endl << "6-5-4-3-2-1" << endl;
            return 0;
        }
        Ответить
        • А на си короче :Р
          Ответить
        • Былдо не умеет в потоки:
          cout << "1\n2-1\n1-2-3\n4-3-2-1\n1-2-3-4-5\n6-5-4-3-2-1" << endl;

          Пс: Лучше решим специально олимпиадную задачу:
          Нарисовать трифорс со стороной n.
          Ответить
          • Спецолимпиадную?
            Ответить
            • А ты считаешь что что рисовать трифорсы это не специальная олимпиада?
              Ответить
          • > cout << "1\n2-1\n1-2-3\n4-3-2-1\n1-2-3-4-5\n6-5-4-3-2-1" << endl;
            Оптимизировал по скорости убрав 5 ненужных flush()'ей. Молодец, возьми пирожок с полочки.
            Ответить

    Добавить комментарий