|
Hi,
I want to initialize a string array with "*".
I want to know if I can avoid using a for loop to do the same.
In the below example I have used a for loop. Can the same done in one line???
The following code will help me generate fibonacci series
public static int Fibonacci(int n)
{
int previous = -1;
int result = 1;
for (int i = 0; i <= n; ++i)
{
int sum = result + previous;
previous = result;
result = sum;
}
}
|
|
|
|
|
what is this!!!
EASY COME EASY GO
|
|
|
|
|
new String('*', 10).ToCharArray();
|
|
|
|
|
Close but no cigar. That results in a char[], not a string[].
string[] sa=new string('*', n).Replace("*", ".*").Split(".".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
is one way of getting it done.
string[] sa=new string('*', n).Replace("*", ".*").Substring(1).Split('.');
is an alternative.
|
|
|
|
|
Happy :p
string[] arr = new string[0];
for(int i = 0; i < 10; i++) {
string[] temp = new string[arr.Length+1];
Array.Copy(arr, temp, arr.Length);
temp[arr.Length] = "*";
arr = temp;
}
|
|
|
|
|
That was awesome Stephen. Thanks
I never knew that an array can be instantiated with a new kewword.
I have incorporated your suggestion in my application.
I am now using "char[] str7 = new String('*', result).ToCharArray()"
This should handle one part of my application.
I have one more question.
Is it possible to convert this array of characters to a string?
something like reverse of what you showed me.
regards,
Netquestions
|
|
|
|
|
His name's not Stephen. I can understand the confusion, but the Stephen referred to in his signature relates to the author of the quote.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
I prefer Denny Crane anyway.
|
|
|
|
|
Something like this -
string aaa = new string(str7, 0, str7.Length);
would return you a string of "***", if thats What u're looking for.
I was born dumb!!
Programming made me laugh !!!
--sid--
|
|
|
|
|
there isn't a straightforward formula that yields Fibonacci numbers without iterations; the closest you can get AFAICT is by using Binet's formula (see here[^]) but for large numbers that will be an approximation as it relies on floating-point arithmetic.
|
|
|
|
|
string[] sa=new string('*', (int)Math.Round((Math.Pow(0.5+Math.Sqrt(1.25), n)-Math.Pow(0.5-Math.Sqrt(1.25), n))/Math.Sqrt(5))).Replace("*", ".*").Substring(1).Split('.');
works quite well.
|
|
|
|
|
|
I suggest you try Fibonacci(100) in a recursive way; you can walk around the world while it computes.
Unless you go for a more advanced equation, one that calculates Fib(2x) from Fib(x).
|
|
|
|
|
Oh, I'm not suggesting that it is a better solution what so ever. I'm just stating it sounds like a homework assignment for creating a recursive Fibonacci implementation.
|
|
|
|
|
Hi,
recursion is not always the way.
*
*
*
**
***
*****
********
If I were to generate and display the following, you will observe that when n= 50, program
hangs. the number of times recursive method gets called grows exponentially.
In such a case a non recursive method is required.
Regards,
NetQuestions
|
|
|
|
|
Indeed, I'm well aware of such. I was only basing my suggestion on the fact it seemed like a homework assignment to create a recursive method.
|
|
|
|
|
I am not an algorithms expert so mine may be wrong and I did cheat for base case but my recursive Fib algorithm is instant. I won't post because it may be the OP's homework but Fib is not hard and does not require any deep recursion. My algorithm needs 98 levels to calculate the Fib numbers from 2 to 100. (Again, I cheated on the base)
|
|
|
|
|
yes, you can easily avoid the exponential behavior, however I have seen quite a few straightforward recursive implementations that don't. They are extremely good examples against the use of recursion for anything that is not recursive by its very nature (such as a hierarchical file system).
|
|
|
|
|
the number of times the method keeps getting called increases exponentially
|
|
|
|
|
NetQuestions wrote: I want to initialize a string array with "*".
string[] a = new string[] { "*" } ;
|
|
|
|
|
I actually used the following statement
string str = new string('*', 10)
|
|
|
|
|
That doesn't meet the stated criteria.
|
|
|
|
|
I have the following code:
SqlConnection con = new SqlConnection("connection details");
con.Open();
string strSql = "select * from Names";
SqlDataAdapter dadapter = new SqlDataAdapter();
dadapter.SelectCommand = new SqlCommand(strSql, con);
DataSet dset = new DataSet();
dadapter.Fill(dset,"Names");
con.Close();
dataGridView1.DataSource = dset.Tables["Names"];
The dset looks as follows:
ID Name
1 Terence
2 Richard
1. How can I get my datagrid to only show the Name and not the ID column?
2. Also if I have a column named First Name in my datafrid how can I get name to show up in that column and not in a new one or how can I assign custom names to my datagrid?
Any help would be great thanks!
|
|
|
|
|
|
Thanks for the info , I need the * as I need the ID for other things. I just dont want the ID to appear in the datagrid...
|
|
|
|