konto usunięte
Temat: Łamigłówka
Po wprowadzeniu liczby pojawiać powinien się komunikat:"Liczba zawiera:
s tysięcy
x setek
y dziesiątek
z jedności"
Prosił bym o podanie waszych propozycji rozwiązań oraz dyskusję merytoryczną na ich temat
konto usunięte
Acg N. .
static void Main(string[] args)Adrian Olszewski edytował(a) ten post dnia 23.01.10 o godzinie 12:51
{
long Wejscie = 8521;
long Liczba = Wejscie;
long Jednosci = 0;
long Dziesiatek = 0;
long Setek = 0;
long Tysiecy = 0;
Console.WriteLine("Liczba zawiera:");
Tysiecy = Liczba / 1000;
Liczba -= Tysiecy * 1000;
Setek = Liczba / 100;
Liczba -= Setek*100;
Dziesiatek = Liczba / 10;
Liczba -= Dziesiatek * 10;
Jednosci= Liczba;
Console.WriteLine("{0} tysięcy", Tysiecy);
Console.WriteLine("{0} setek", Setek);
Console.WriteLine("{0} dziesiatek", Dziesiatek);
Console.WriteLine("{0} jednosci", Jednosci);
Console.Write("\n----------------------\n");
Liczba = Wejscie;
Console.WriteLine("{0} tysięcy", Liczba / 1000);
Console.WriteLine("{0} setek", Liczba / 100);
Console.WriteLine("{0} dziesiatek", Liczba / 10);
Console.WriteLine("{0} jednosci", Liczba);
Console.ReadKey();
}
konto usunięte
Acg N. .
konto usunięte
Acg N. .
;
int Wejscie = 32;
string Liczba = Wejscie.ToString().PadLeft(4, '0');
Console.WriteLine("Liczba zawiera:");
Console.WriteLine("{0} tysięcy", Liczba[0]);
Console.WriteLine("{0} setek", Liczba[1]);
Console.WriteLine("{0} dziesiatek", Liczba[2]);
Console.WriteLine("{0} jednosci", Liczba[3]);
Console.ReadKey()
konto usunięte
Acg N. .
int Liczba = 8541;Adrian Olszewski edytował(a) ten post dnia 23.01.10 o godzinie 13:47
if (Liczba >= 10000) return;
int Tysiecy=0;
int Setek=0;
int Dziesiatek=0;
int Jednosci=0;
while (Liczba >=0)
{
Liczba -= 1000;
if (Liczba >= 0)
{
Tysiecy++;
}
}
Liczba += 1000;
while (Liczba >= 0)
{
Liczba -= 100;
if (Liczba >= 0)
{
Setek ++;
}
}
Liczba += 100;
while (Liczba >= 0)
{
Liczba -=10;
if (Liczba >= 0)
{
Dziesiatek++;
}
}
Liczba +=10;
while (Liczba >= 0)
{
Liczba--;
if (Liczba >= 0)
{
Jednosci++;
}
}
Console.WriteLine("{0} tysięcy", Tysiecy);
Console.WriteLine("{0} setek", Setek);
Console.WriteLine("{0} dziesiatek", Dziesiatek);
Console.WriteLine("{0} jednosci", Jednosci);
konto usunięte
Write a method to combine two two sorted linked list into one in
sorted form with out using temporary Node.
void sort(Node* list1,Node* list2)
Write an algorithm to verify if a tree is a binary search tree.
Implement a counting semaphore using only binary mutexes
You have 8 balls. One of them is defective and weighs less than
others. You have a balance to measure balls against each other. In
2 weighings how do you find the defective one?
Write a routine to draw a circle (x ** 2 + y ** 2 = r ** 2) without
making use of any floating point computations at all.
Given an array of characters which form a sentence of words, give
an efficient algorithm to reverse the order of the words (not
characters) in it.
Given an array t[100] which contains numbers between 1..99.
Return the duplicated value. Try both O(n) and O(n-square).
Write a method to combine two two sorted linked list into one in
sorted form with out using temporary Node.
void sort(Node* list1,Node* list2)
Write an algorithm to verify if a tree is a binary search tree.
konto usunięte
You have 8 balls. One of them is defective and weighs less than
others. You have a balance to measure balls against each other. In
2 weighings how do you find the defective one?
Acg N. .
// Generowanie danych w tablicy
int[] Tab = new int[100];
System.Random Rnd = new System.Random();
for (int i = 0; i < 99; i++)
{
//Tab[i] = i+1;
Tab[i] = Rnd.Next(1, 99);
}
//Tab[99] = Rnd.Next(1, 99);
// Utworzenie i przygotowanie haszmapy (wszystkie komórki = 0)
int[] HM = new int[100];
// Kontrola duplikatów
for (int i = 0; i < 100; i++)
{
HM[ Tab[i] ]++;
if(HM[ Tab[i] ] > 1)
{
Console.WriteLine("Duplicated: {0}", Tab[i]);
}
}
Console.ReadKey();
konto usunięte
given a matrix (assume it is a bitmap), print all cells that are on
bmp[k1] - [j1][j2][j3][j4]...[jn]
bmp[k2] - [j1][j2][j3][j4]...[jn]
.
.
.
bmp[kn] - [j1][j2][j3][j4]...[jn]
bmp[y][x]
for(int i = 0; i < y_count; i++)
for(int j = 0; j < x_count; j++)
bmp[i][j] // zrob cos
Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
Given an array t[100] which contains numbers between 1..99.
Return the duplicated value. Try both O(n) and O(n-square).
Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
sort an array of 0's and 1's in a most efficient way.
Acg N. .
Piotr G.:
Given an array t[100] which contains numbers between 1..99.
Return the duplicated value. Try both O(n) and O(n-square).
Przecież to się da prościej niż przez wyszukiwanie powtórzeń ;)
Skoro mamy tablicę 100 elementów, i 99 różnych, całkowitych wartości z przedziału (1;99), to oznacza, że w 99 elementach tablicy będzie te 99 wartości, a 100-tny element będzie zawierał dokładnie jedno powtórzenie.
A więc zrobiłbym tak: obliczyłbym sumę wszystkich elementów tablicy. Następnie, korzystając ze znanego faktu, że suma kolejnych liczb naturalnych od 1 do n wynosi n*(n+1)/2, czyli w tym wypadku 99*100/2 = 4950, odjąłbym od wcześniej obliczonej sumy 100 elementów to 4950 i wyszłoby, co się powtarza. Nie?
Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
Write a routine to draw a circle (x ** 2 + y ** 2 = r ** 2) without
making use of any floating point computations at all.
Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
Paweł Łukasik:
You have 8 balls. One of them is defective and weighs less than
others. You have a balance to measure balls against each other. In
2 weighings how do you find the defective one?
Fajnie mieć 8 kulek :).
Pierwsze ważenie to po 3 kulki na każdej z szalek.
=> Jeśli są równe to ważymy pozostałe 2 kulki i znajdujemy lżejszą.
=> Jeśli nie to bierzemy 3 kulki lżejsze i dwie z nich ważymy. Jeśli równe to pozostała 3cia jest lżejsza. Jeśli są różne to waga nam wskaże lżejszą.
Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
Piotr G.:> {
Write a routine to draw a circle (x ** 2 + y ** 2 = r ** 2) without
making use of any floating point computations at all.
Z tego wynika, że:
1. okrąg ma środek w punkcie (0,0)
2. x, y i r muszą być całkowite (bo inaczej musimy stosować floating pointy)
Kto pisał kiedyś grafikę w assemblerze, wie, o co biega ;)
Korzystając z tego, że po przekształceniu: y**2 = r**2 - x**2, zrobiłbym to tak:
bool DrawCircle(int r)
{
if (r = 0)
return false; // nie ma co rysować
int r2 = r * r; // żeby nie liczyć w pętli
for (int x = 0, y = r; x <= r; x++)
int r2_minus_x2 = r2 - x * x;> break;
while (y * y > r2_minus_x2) y--;
if (y < 0)
plot(x, y);
plot(-x, y);
plot(x, -y);
plot(-x, -y);
}
return true;
}
Okrąg będzie co prawda nieco mniejszy (wszystkie punkty będą leżały na okręgu lub w jego wnętrzu), ale będzie. Można byłoby jeszcze dodać trochę "szumu", np. dla parzystych x dodawać 1 do y, żeby co drugi punkt wyszedł poza okręgiem, ale to już kosmetyka.Piotr G. edytował(a) ten post dnia 25.01.10 o godzinie 16:35
konto usunięte
- binary tree, nodes, each node has an ID
- root node of the tree
structure node
{
int id;
node * left;
node *right;
}
- problem: given node id 1, and node id 2, determine the
lowest common ancestor of these 2 nodes
- input:
id1, id2, root
- out: node id of this ancestor node
Amazon.com has hired you to design their system in .NET.
List 10 business requirements and then draw me a design to meet the requirements.
Don't just put UI, BL, DL, DB either. "I will be back in 45 minutes > (note: guy comes back in 15 minutes later)." Explain your requirements list to me. Explain your design diagram to me. Why did you do it that way?
You're given an array containing both positive and negative integers and required to find the sub-array with the largest sum (O(N) a la KBL). Write a routine in C for the above._______________________
Given an array of size N in which every number is between 1 and N, determine if there are any duplicates in it. You are allowed to destroy the array if you like.
Give a one-line C expression to test whether a number is a power of 2. No loops allowed._______________________
Give a very good method to count the number of ones in a 32 bit number. (caution: looping through testing each bit is not a solution)
Następna dyskusja: