den andre siden av elven RSS 2.0
# Thursday, July 17, 2008

Har kikket litt på Project Euler, god måte å få litt hjernetrim på. Særlig om en ikke jobber med avanserte algoritmer til daglig. Et eksempel på hvilke oppgaver du kan møte på er problem 4:

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.

Find the largest palindrome made from the product of two 3-digit numbers.

Da jeg ikke er smart nok til å skrive superintrikate algoritmer i assembly/perl/f# osv så blir det god gammeldags "brute forcing" i C#. Koden er ikke utpreget elegangt, eneste fancy er at den benytter seg av Extension methods for å utvide funksjonaliteten til string.

Vurderer å løse denne pånytt med Linq, bare for å teste hvordan det blir. Sånn som det er nå, føles det ikke som sexy kode.

public class Problem4
{
    int highest = 0;

    public int Calculate()
    {
        for (int i = 999; i > 0 ; i--)
        {
            for (int j = 999; j > 0; j--)
            {
                int sum = i * j;
                if (sum > highest)
                {
                    if (IsPalindrome(sum))
                        highest = sum;
                }
                else
                    break;
            }
        }
        return highest;
    }

    private bool IsPalindrome(int number)
    {
        string numb = number.ToString();

        if (numb == numb.Reverse())
            return true;
        
        return false;
    }
}


public static class Extensions
{
    public static string Reverse(this string s)
    {
        char[] ch = s.ToCharArray();
        Array.Reverse(ch);
        return new String(ch);
        
    }
}
17 July, 2008  #    Comments [0] -
Kode | Project Euler
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, em, i, strike, strong) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
Navigation
Categories
Archive
<July 2008>
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
Blogroll
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Johan Grønstad
Sign In
Statistics
Total Posts: 7
This Year: 7
This Month: 0
This Week: 0
Comments: 5
Themes
Pick a theme:
All Content © 2008, Johan Grønstad
DasBlog theme 'Business' created by Christoph De Baene (delarou)