1. Java / Говнокод #10238

    +79

    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
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    import java.util.*;
    
    class Euler32 {
        public static void main(String[] args) {
    	int total=0;
    
    	LinkedList<Integer> remDigits=new LinkedList<Integer>();
    	for(int n=1;n<=9;n++)
    		remDigits.add(new Integer(n));
    	
    	for(int n9=2;n9<9;n9++){ //starting digit can't be 1 or 2
    	  int thouC=(remDigits.get(n9)).intValue();
    	  remDigits.remove(n9);
    	  for(int n8=0;n8<8;n8++){
    	    int hundC=(remDigits.get(n8)).intValue();
    	    remDigits.remove(n8);
    	    for(int n7=0;n7<7;n7++){
    	      int tenC=(remDigits.get(n7)).intValue();
    	      remDigits.remove(n7);
    	      for(int n6=0;n6<6;n6++){
    		int oneC=(remDigits.get(n6)).intValue();
    		remDigits.remove(n6);
    
    		int c=1000*thouC+100*hundC+10*tenC+oneC;
    		boolean found=false;
    		int n5=0;
    		while((n5<5)&&(found==false)){
    		    int ab1=(remDigits.get(n5)).intValue();
    		    remDigits.remove(n5);
    		    int n4=0;
    		    while((n4<4)&&(found==false)){
    		      int ab2=(remDigits.get(n4)).intValue();
    		      remDigits.remove(n4);
    		      int n3=0;
    		      while((n3<3)&&(found==false)){
    			int ab3=(remDigits.get(n3)).intValue();
    		      	remDigits.remove(n3);
    		      	int n2=0;
    			while((n2<2)&&(found==false)){
    			  int ab4=(remDigits.get(n2)).intValue();
    			  remDigits.remove(n2);
    			  int ab5=(remDigits.get(0)).intValue();
    
    			  int a3=100*ab1+10*ab2+ab3;
    			  int a4=1000*ab1+100*ab2+10*ab3+ab4;
    			  int b2=10*ab4+ab5;
    			  int b1=ab5;
    
    			  if((a3*b2)==c){
    			    found=true;
    			    total+=c;
    			    System.out.println(c+" = "+a3+"x"+b2); 
    			    }
    			  else if((a4*b1)==c){
    			   found=true;
    			   total+=c;
    			   System.out.println(c+" = "+a4+"x"+b1); 
    			   }
    
    			  remDigits.add(n2,new Integer(ab4));
    			  n2++;
    			  }
    			remDigits.add(n3,new Integer(ab3));
    		      	n3++;
    			}
    		      remDigits.add(n4,new Integer(ab2));
    		      n4++;
    		      }
    		    remDigits.add(n5,new Integer(ab1));
    		    n5++;
    		    }
    
    		remDigits.add(n6,new Integer(oneC));
    		}
    	      remDigits.add(n7,new Integer(tenC));
    	      }
    	    remDigits.add(n8,new Integer(hundC));
    	    }
    	  remDigits.add(n9,new Integer(thouC));
    	  }
    	System.out.println(total);	
        }
    }

    http://projecteuler.net/problem=32
    http://projecteuler.net/thread=32;page=2


    >My code is absolutely hideous, but it works and it's fast.

    Извиняюсь за длинный пост, но это просто шедевр, я не мог это не запостить!

    TheHamstertamer, 10 Мая 2012

    Комментарии (15)
  2. C++ / Говнокод #10237

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    template<class TValueChanger1, class TValueChanger2, class TValueChanger3>
    	NContour::NPrimitives::PArc ChangePrimitive(NContour::NPrimitives::PArc Arc, const TValueChanger1& ValueChanger1, const TValueChanger2& ValueChanger2, const TValueChanger3& ValueChanger3)
    	{
    		return
    		boost::static_pointer_cast<NContour::NPrimitives::TArc>(ValueChanger3(
    		boost::static_pointer_cast<NContour::NPrimitives::TArc>(ValueChanger2(
    		boost::static_pointer_cast<NContour::NPrimitives::TArc>(ValueChanger1(
    		Arc
    		))
    		))
    		));
    	}

    Говногость, 10 Мая 2012

    Комментарии (6)
  3. C# / Говнокод #10236

    +92

    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
    private IPAddress GetAGateway(string Network)
    {
    	if(Network.StartsWith("PitNet"))
    	{
    		string IPs = Network.Split(new char[] {'|'})[1];
    		string[] IPPoints = IPs.Split(new char[] {'.'});
    		string[] PitNetIP = {"10.10.40", "10.10.50", "10.10.67",
    				     "10.10.100", "10.10.108", "10.10.109", 
    				     "10.10.110", "10.10.150", "10.10.160", 
    				     "10.10.200", "10.10.210", "10.10.220", "10.10.250"};
    		string IPAddresss = null;
    		if(IP.ToString().StartsWith(PitNetIP[0])) IPAddresss = "10.10.40.1";
    		if(IP.ToString().StartsWith(PitNetIP[1])) IPAddresss = "10.10.50.1";
    		if(IP.ToString().StartsWith(PitNetIP[2])) IPAddresss = "10.10.67.1";
    		if(IP.ToString().StartsWith(PitNetIP[4])) IPAddresss = "10.10.100.4";
    		if(IP.ToString().StartsWith(PitNetIP[5])) IPAddresss = "10.10.108.1";
    		if(IP.ToString().StartsWith(PitNetIP[6])) IPAddresss = "10.10.109.1";
    		if(IP.ToString().StartsWith(PitNetIP[7])) IPAddresss = "10.10.110.4";
    		if(IP.ToString().StartsWith(PitNetIP[8])) IPAddresss = "10.10.150.1";
    		if(IP.ToString().StartsWith(PitNetIP[9])) IPAddresss = "10.10.160.1";
    		if(IP.ToString().StartsWith(PitNetIP[10])) IPAddresss = "10.10.200.3";
    		if(IP.ToString().StartsWith(PitNetIP[11])) IPAddresss = "10.10.210.1";
    		if(IP.ToString().StartsWith(PitNetIP[12])) IPAddresss = "10.10.220.1";
    		if(IP.ToString().StartsWith(PitNetIP[13])) IPAddresss = "10.10.250.1";
    		IPAddress GatewayIP = IPAddress.Parse(IPAddresss);
    		return GatewayIP;
    	}
    	if(Network.StartsWith("StarNet"))
    	{
    		//говно говно говно
    	}
    	if(Network.StartsWith("Maglan"))
    	{
    		//говно говно говно
    	}
    	return null;
    }

    По полученному оператору локальной сети и IP адрессу машины определяет какой у нее шлюз. Жаль LINQ нету.

    KusokGovna, 10 Мая 2012

    Комментарии (12)
  4. Си / Говнокод #10235

    +116

    1. 1
    2. 2
    3. 3
    short lPort = atoi(szTemp);
    if (lPort <= 0 || lPort > 65535)
    	lPort = 80;

    absolut, 10 Мая 2012

    Комментарии (9)
  5. PHP / Говнокод #10234

    +74

    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
    $lang_ru = '<a class=lang-ru-RU href="#" id="btn1">RU</a>';
    $lang_en = '<A class=lang-en-US href="#" id="btn2">EN</A>';
    $lang_de = '<A class=lang-de-DE href="#" id="btn3">DE</A>';
    if (!isset($HTTP_COOKIE_VARS["language"])) {
    	$lang_1 = $lang_ru;
    	$lang_2 = $lang_en;
    	$lang_3 = $lang_de;
    } else {
    	if ($HTTP_COOKIE_VARS["language"] == 'en') {
    		$lang_1 = $lang_en;
    		$lang_2 = $lang_ru;
    		$lang_3 = $lang_de;
    	} else {
    		if ($HTTP_COOKIE_VARS["language"] == 'de') {
    			$lang_1 = $lang_de;
    			$lang_2 = $lang_ru;
    			$lang_3 = $lang_en;
    		} else {
    			$lang_1 = $lang_ru;
    			$lang_2 = $lang_en;
    			$lang_3 = $lang_de;
    		}
    	}
    }

    А если языков было бы больше?

    My_own_private_pony, 10 Мая 2012

    Комментарии (26)
  6. C# / Говнокод #10233

    +93

    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
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    private void Form1_Load(object sender, EventArgs e)
            {
                    this.пользователиTableAdapter.Fill(this.пользователиDataSet.Пользователи);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                string a1 = textBox1.Text;
                string a2 = a1 + ";" + textBox2.Text;
    
                int d = dataGridView1.ColumnCount-1;
                int d1 = dataGridView1.RowCount-1;
    
                for (int i = 0; i < d1; i++)
                {
                    for (int j = 0; j < d; j++)
                    {
                        if (a2 == ";")
                        {
                            MessageBox.Show("Введите логин и пароль");
                            d = 0;
                            d1 = 0;
                            break;
                        }
    
                        if (a2 == dataGridView1.Rows[i].Cells[0].Value.ToString())
                        {
                            int r1 = i;
                            int r2 = j;
    
                            string r11 = dataGridView1.Rows[r1].Cells[r2 + 1].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 2].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 3].Value.ToString() + dataGridView1.Rows[r1].Cells[r2 + 4].Value.ToString();
    
                            if (r11 == "++--")
                            {
                                Hide();
                                Form2 f2 = new Form2();
                                f2.ShowDialog();
                                d = 0;
                                d1 = 0;
                                this.Close();
                                break;
                            }
    
                            if (r11 == "--++")
                            {
                                Hide();
                                Form3 f3 = new Form3();
                                f3.ShowDialog();
                                d = 0;
                                d1 = 0;
                                this.Close();
                                break;
                            }
    
                            if (r11 == "--+-")
                            {
                                Hide();
                                Form4 f4 = new Form4();
                                f4.ShowDialog();
                                d = 0;
                                d1 = 0;
                                this.Close();
                                break;
                            }
                        }
    
                        int d11 = d1-1;
                        int dd = d-1;
    
                        if (j == dd && i == d11)
                        {
                            MessageBox.Show("Логин или пароль отсутствует в базе данных");
                        }
                    }
                        }
                    }      
                }
            }

    http://www.youtube.com/watch?v=MNQb-uxneYs

    lowercase, 10 Мая 2012

    Комментарии (2)
  7. Java / Говнокод #10232

    +79

    1. 1
    for (; e.hasMoreElements();)

    смайлокод.
    вот почему не while, объясните мне?

    Lure Of Chaos, 10 Мая 2012

    Комментарии (10)
  8. C# / Говнокод #10231

    +108

    1. 1
    2. 2
    3. 3
    4. 4
    userPerms = (Permissions)Session["permissions"];
    if (userPerms.AllUserRights["rod_view"] == null && userPerms.AllUserRights["rod_view"] == null) {
        throw new Exception("no rights");
    }

    Я по два раза по два раза не повторяю не повторяю.

    sergey_sh, 10 Мая 2012

    Комментарии (2)
  9. PHP / Говнокод #10230

    +89

    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
    40. 40
    41. 41
    <?php
     
     
    if((isset($_FILES['file1'])) || 
       (isset($_FILES['file2'])) || 
       (isset($_FILES['file3'])) || 
       (isset($_FILES['file4']))){
     
                                if($_FILES['file1'] ['error'] || 
                                    $_FILES['file2'] ['error'] || 
                                    $_FILES['file3'] ['error'] || 
                                    $_FILES['file4'] ['error'] == 0 && 
     
                                                                              $_FILES['file1'] ['saze'] || 
                                                                              $_FILES['file2'] ['saze'] || 
                                                                       $_FILES['file3'] ['saze'] || 
                                                                       $_FILES['file4'] ['saze'] > 0) { 
                                                                      
                                                 $path1 = "E:\\apache\\";
                                                 $path1 .= basename($_FILES['file1'] ['name']);
                                                 $path2 = "E:\\apache\\";
                                                 $path2 .= basename($_FILES['file2'] ['name']);
                                                 $path3 = "E:\\apache\\";
                                                 $path3 .= basename($_FILES['file3'] ['name']);
                                                 $path4 = "E:\\apache\\";
                                                 $path4 .= basename($_FILES['file4'] ['name']);
                                                                     
                if(@move_uploaded_file($_FILES['file1'] ['tmp_name'],$path1)){ 
                   if(@move_uploaded_file($_FILES['file2'] ['tmp_name'],$path2)){
                      if(@move_uploaded_file($_FILES['file3'] ['tmp_name'],$path3)){
                         if(@move_uploaded_file($_FILES['file4'] ['tmp_name'],$path4)){
                         
                  }else{}
                }else{}     
              }else{}
            }else{}
          }else{}
        }else{}
     
     
    ?>

    я даже не знаю, как это прокомментировать. особенно нравится $_FILES['file1'] ['saze']

    heleg, 10 Мая 2012

    Комментарии (8)
  10. Куча / Говнокод #10229

    +121

    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
    minChunksSize=1000.0 -- 100.0
     
    facbig :: Integer -> Integer
    facbig n = 
            let 
                    divisionProportion = 0.9 -- 2.0/3.0
                    amountOfChunk = truncate $ logBase divisionProportion $ minChunksSize/fromIntegral n
                    proportions = map (divisionProportion^) [amountOfChunk, amountOfChunk-1 .. 1]
                    centralChunkResults = map product [
                            let
                                    begin = proportionToItemNumber 1 beginRangeProportion
                                    end = proportionToItemNumber 0 endRangeProportion
                            in
                            [begin..end] | (endRangeProportion, beginRangeProportion) <- zip proportions $ tail proportions ]
                    beginChunkResult = product [1 .. proportionToItemNumber 0 $ last proportions]
                    endChunkResult = product [proportionToItemNumber 1 $ head proportions .. n]
            in product $ beginChunkResult:endChunkResult:centralChunkResults
            where
                    proportionToItemNumber shift proportion =
                            shift + truncate ((1.0-proportion)*fromIntegral n)
     
    fac n = if n <= (truncate $ 3.0*minChunksSize)
            then product [1..n]
            else facbig n
     
    main = print $ length $ show $ fac 100000

    Вот так вот школота считают число цифр в факториале числа.

    HaskellGovno, 10 Мая 2012

    Комментарии (7)