问几个简单的算法
a,输入一个整数如2,输入项数如4,计算下式的值:2+22+222+2222(如输入的是
和2 则计算的是 3+33)
b,一篮子鸡蛋 数目除2余1,除3余2,除4余3,除5余4 问有多少个
c,一个数的个位是8(如128),将8移到首位(变成812)后将是原来的4倍,编
程求这个数(最小值)
d,A、B、C、D、E、F、G分别代表 1000、500、100、50、5、1,给定一个字符串
如 ABC,求出它的值(ABC=1000+500+100)
第一题算出来了 第2题 用程序怎么不会写...
第3题... 答案求不出... 第4题 好象要类型强制转换求吧.. 求程序源码 谁给算算啊...
答案出来就结贴
------解决方案--------------------第一个不考虑溢出
private Int64 getSum(int data, int num)
{
Int64 i64 = 0;
for (int i = 1; i <= num; i++)
{
i64 += Int64.Parse(data.ToString().PadRight(i, data.ToString().ToCharArray()[0]));
}
return i64;
}
------解决方案--------------------第三题
private int getMin(int total)
{
int min = 0;
for (int i = 1; i < total; i++)
{
if (i.ToString().LastIndexOf( '8 ') == (i.ToString().Length-1) && i * 4 == int.Parse( "8 " + i.ToString().TrimEnd( '8 ')))
{
min = i;
i = i + total;
}
}
return min;
}
------解决方案--------------------一个数的个位是8(如128),将8移到首位(变成812)后将是原来的4倍,编
程求这个数(最小值)
int getRequireValue()
{
int l=0;
int tempN;
for(int n=18;n <Int.MaxValue;n=n+10)
{
tempN=8;
l=n.tostring().length;
for(int i=1;i <l;i++)
{
tempN*=10;
}
tempN+=n%10;
if(tempN/n==4)
{
return n;
}
}
returen 0;
}
------解决方案--------------------//d,A、B、C、D、E、F、G分别代表 1000、500、100、50、5、1,给定一个字符串
string chars = "ABCDEFG ";
int[] numbers = new int[] { 1000, 500, 100, 50, 5, 1 };
string S = "ABC ";
int sum = 0;
foreach(char c in S)
{
int i = chars.IndexOf(c);
if (i < 0) break;
sum += numbers[i];
}
Console.WriteLine(sum); // 1600
------解决方案--------------------第四道题思路:
先用一个数组来保存输入的字母A,B,C,D..
再用一个数组来保存和字母相对应的值500,100,200。。。
然后输入的字母再和数组中的字母相比。求出所以位置,再从数据数据中取得相对应的值相加即可。。。
现在没写时间写。。。只能提供思路。。。
------解决方案--------------------1.一种另类思考方式,而已.
private double getSum(double a,double b)
{
double sum=0;
for(double i=b;i> 0;i--)
{
sum+=a*i*Math.Pow(10,b-i);
}
return sum;
}
2.这个%2=1 奇数 ;%5=4不是4结尾就是9结尾=9结尾
private int getEgg()
{
for(int i=19;;i+=10)
if(i%3==2&&i%4==3)
return i;
}
3.末尾是8,4倍结尾是2 最后两位是28 从百位开算就可以
private int getMin()
{
for(int i=128;;i+=100)
{
if((i*4)==((i/10)+8 * (int)Math.Pow(10, (int)Math.Log10(i))))
{
return i;
}
}
}
4.搞笑一把,简单的对应 不写了
private int 搞笑()
{
int A=1000,B=500,C=100,D=50,E=5,F=1;
return A+B+C;
}//另清清的办法,很有创意