实现如下功能:
当传入参数string a = "1";时for (int i = 0; i < a.Length; i++)
sum += i;
当传入参数string a = "12";时for (int i = 0; j < a.Length; i++)
for (int j = 0; j < i; j++)
sum += (i + j);当传入参数string a = "123";
for (int i = 0; j < a.Length; i++)
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);假设string a ="123456..."依次类推...设计一个方法:
static int fun(string a)
{
int sum = 0;
//在此写代码
return sum;
}求解注释位置的代码:)
当传入参数string a = "1";时for (int i = 0; i < a.Length; i++)
sum += i;
当传入参数string a = "12";时for (int i = 0; j < a.Length; i++)
for (int j = 0; j < i; j++)
sum += (i + j);当传入参数string a = "123";
for (int i = 0; j < a.Length; i++)
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);假设string a ="123456..."依次类推...设计一个方法:
static int fun(string a)
{
int sum = 0;
//在此写代码
return sum;
}求解注释位置的代码:)
解决方案 »
- 200分求C#代码 [C# CRC16 校验问题] (有源C++ 代码)
- Session过期问题
- C# winfrom ComboBox控件
- 有关点对点视频方面的资料
- int x= Convert.ToInt32(a) - Convert.ToInt32(b);
- c#字符串转怎么换成执行代码
- 怎么给datagrid的单元格赋值
- GridView编辑单元格
- 当检索出的字段值为空时,SqlReader.GetString( 0 )是会出错的?
- [SOS] 如何在TreeView的節點中嵌入CheckBox或者RadioButton? [SOS]
- 请问:卸载NET2005是否有专门的第三方软件工具呢
- treeview的问题,怎么判断鼠标点击操作是落在了节点的文本区,而不是节点文本后面的空白区
static int fun(string a)
{
int sum = 0;
for(int i=0;i<a.Length;i++)
{
sum +=i;
}
return sum;
}
?
0>1>2>3>4....>a.Length-1,满足条件的只有一种情况,就是0+1+2+3+...+a.Length-1
---------------------------------------
搞笑吗?当传入参数string a = "123";
for (int i = 0; j < a.Length; i++)
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);输出:sum = 18
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);
这个是对的还是错的??
最后总结的公式如下
f(1) = 0;
f(n) = 2的(n-1)次方*(n-1) + 2*f(n-1);程序如下:
int fun(string a)
{
int sum = 0;
//在此写代码
int length = a.Length;
if(length == 1)
return sum;
else
{
string b = a.subString(1);
return int.Parse (Math.Pow(2, length-1) ) * (n-1) + fun(b)*2;
} }家里电脑没装编译器 有错误调试下
上面那个公式应该是 OK的
for(i=0;j<a.Length,i++)
这个时候j从哪里来??
正确的应该是
当传入参数string a = "123";
for (int i = 0; i < a.Length; i++)
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);
反过来思考
k=0时,j至少为1,i至少为2,2<"123".Length,
所以只会有一种情况
f(1) = 0;
f(n) = 2的(n-2)次方*(n-1) + 2*f(n-1); n>=2int.Parse (Math.Pow(2, length-2) ) * (n-1) + fun(b)*2;
0 0 0
1 0 0
2 0 0
2 1 0
应该是上面的情况不是你说的只有一种情况
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);
bestyond() ,i=2,j=0时, for (int k = 0; k < j; k++),这个循环满足还是不满足,会不会持行
sum+= (i + j + k)??
哎LZ你可浪费了我的宝贵时间呀
不过我想LZ的本意可能是想要我的那种结果吧
void main()/*主函数*/
{
int i,k;char str[255];char *p;SqStack s;
printf("\nPlease input the elem:\n");
InitStack(&s);/*初始化栈*/
for(i=0;i<255;i++)
{
scanf("%c",&str[i]);
Push(&s,str[i]);
p=s.top;
p--;
if(p==')')
{
k=i;
do
{
p--;
k--;
}while((p!='(')&&(k>0));
if(p=='(')
{
printf("\n'(' and ')'can match!\n",k+1,i+1);
}
else
{
printf("\n not matched;\n",i+1);
}
}
}
}
sum += i;
当传入参数string a = "12";时for (int i = 0; i < a.Length; i++)
for (int j = 0; j < i; j++)
sum += (i + j);跟字符串本身包含的内容无关,只跟长度有关,把他写成数字是为了便于理解题意
当传入参数string a = "123";
for (int i = 0; i < a.Length; i++)
for (int j = 0; j < i; j++)
for (int k = 0; k < j; k++)
sum += (i + j + k);
Dim II As Integer
For II = 0 To CurLength - 1
If Cyc = StrCode.Length Then
Sum = TempSum + II
Else
Cyc += 1
TempSum += II
DoIt(Sum, StrCode, II, TempSum, Cyc)
End If
Next
End Sub Function GetSum(ByVal StrCode As String) As Integer
Dim Sum As Integer
DoIt(Sum, StrCode, StrCode.Length, 0, 1)
Return Sum
End Function Private Sub MyButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyButton1.Click
MsgBox(GetSum("abcd"))
End Sub不知道是否正确哈~~简单的写了一下,思路没问题,但是可能算法不够简练;
第归应该还是可以实现的,回头转换成C#给你,我不大会C#,可能会有问题
{
int II;
for (II = 0; II <= CurLength - 1; II++) {
if (Cyc == StrCode.Length)
{
Sum = TempSum + II;
}
else
{
Cyc += 1;
TempSum += II;
DoIt(Sum, StrCode, II, TempSum, Cyc);
}
}
}public int GetSum(string StrCode)
{
int Sum;
DoIt(Sum, StrCode, StrCode.Length, 0, 1);
return Sum;
}大体就这样了,你自己验证是否正确吧,呵呵,50分不多,不过问题挺有意思;
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
联系方式:Q64180940(请清楚注明业务还是技术咨询) 全天在线
==================================================================
返回的就是 ref的值!
——我不会C#,不知道是不是这样写,会有问题;Bote_China,不定层数循环,除了第归,我真的不知道还有什么方法可以让代码更简洁,给个思路就Ok,算法我不是很擅长;
在Vb.net里面用Byref来实现,不知道C#的ref是不是也是同样的功能。
让楼上的困惑了,呵呵~~~~~~~~~——我的思路应该不会有太大的出入的。
static int fun(string a)
{
int sum = 0;
for(int i=0;i<a.Length;i++)
{
sum+=i;
}
return sum;
}
大家可以验证一下,被假象迷惑了!结果与上楼仁兄(lovingkiss)的结果一样!
using System.Collections.Generic;
using System.Text;
using System.Collections;namespace ConsoleApplication51
{
class Program
{
static void DoIt(ref int Sum, string StrCode, int CurLength, int TempSum, int Cyc)
{
int II;
for (II = 0; II <= CurLength - 1; II++)
{
if (Cyc == StrCode.Length)
{
Sum = TempSum + II;
}
else
{
Cyc += 1;
TempSum += II;
DoIt(ref Sum, StrCode, II, TempSum, Cyc);
}
}
} static int GetSum(string StrCode)
{
int Sum = 0;
DoIt(ref Sum, StrCode, StrCode.Length, 0, 1);
return Sum;
}
static void Main(string[] args)
{
string str = "1234";
Console.WriteLine(GetSum(str));
}
}
}
第10层循环循环变量为0时
第9层循环变量致少为1,
第8层循环变量致少为2,
第7层循环变量致少为3,
第6层循环变量致少为4,
第5层循环变量致少为5,
第4层循环变量致少为6,
第3层循环变量致少为7,
第2层循环变量致少为8,
第1层循环变量致少为9
由此可见,满足执行sum+=...语句的条件只有一种情况,即0+1+2+3+4+5+6+7+8+9,所以这个题实际上是求0到n-1的和
lovingkiss10分!
应该是我漏写了一个累加,抱歉,How_do的算法也要改了,瓦卡卡~~~~~~~~~~
2、我对大家这种得到答案再倒推的做法,无可厚非,可也无言以对,因为我少写了一个Sum+,造成你们“分析错误”深表歉意;3、我对楼主给分方式不以为然,我多少无所谓,就算给代码,也确实是How_do先给出来的,虽然大家都错了,而且大部分代码是我写的,呵呵~~算个球吧~~
算法我做错了,少写了一个加号,没有累计Sum
应该是Sum+=,而不是Sum=,所以你们的答案跟着我错了。
你从第一个回贴看起,就知道为什么了。