private long PlusI(int i) { long lReturn = 0; string strI = ""; for (int j = 0; j < i; j++) { strI = ""; for (int x = 0; x < i; x++) { strI = strI + i.ToString(); } lReturn = lReturn + long.Parse(strI); } return lReturn; }
这难什么啊,前两天刚有人发了个帖子就是这个问题 int num = 3; int final=num; int result=num;; //5 55 555 5555 55555 for (int i = 1; i < num; i++) { final = num + final * 10; result=result+final; } Console.WriteLine(result.ToString()); Console.Read();
public int Accumulation(int n) { int result =0; for (int i = 1; i <= n; i++) { result += InitNo(n, i); } return result; } public int InitNo(int n, int m) { string str = "" ; for (int i = 0; i < m; i++) str += n.ToString(); return int.Parse(str); }
void Main() { Console.WriteLine(Sum(2)); //3+33+333=369 }int Sum(int n) { if(n<1) return 0; int m=0; int result=0; for(int i=1;i<=n;i++) { result +=int.Parse( new string(char.Parse(n.ToString()),i)); } return result; }
private string getStr(int paramNum) { string result = ""; for (int i = 0; i < paramNum; i++) { for (int j = 0; j < i + 1; j++) { result = result + paramNum.ToString(); } if (i != (paramNum - 1)) { result = result + "+"; } } return result; } 你是要的这种效果吗?
private string getStr(int paramNum) { string result = ""; for (int i = 0; i < paramNum; i++) { for (int j = 0; j < i + 1; j++) { result = result + paramNum.ToString(); } if (i != (paramNum - 1)) { result = result + "+"; } } result = result + "="; int numSum = 0; for (int i = 1; i <= paramNum; i++) { numSum += int.Parse(new string(char.Parse(paramNum.ToString()), i)); } result = result + numSum.ToString(); result = result + " = " + getZhiYinshu(numSum); return result; } private string getZhiYinshu(int number) { int sum = number; int[] str = new int[20]; int k = 0; int flag = 1; for (int i = 2; ; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { flag = 0; break; } } if (flag == 0) { flag = 1; continue; } while (true) { if (number % i == 0) { number = number / i; str[k] = i; k++; } else break; } if (number == 1) break; } string print = ""; for (int j = 0; j < 20; j++) { if (str[j] != 0) { print = print + int.Parse(str[j].ToString()) + "*"; } } return print.Substring(0,print.Length - 1); }
没做0的检查,没做溢出检查,不是很严谨,只是个示例: // 假设输入的值为number对应的值 int number = 7;int sum = 0; for (int i = 0, temp = 0; i < number; i++) { temp += number * ((int) Math.Pow(10, i)); sum += temp; Console.Write(temp); if (i < number - 1) Console.Write("+"); else Console.Write("="); } Console.WriteLine(sum); 结果: 7+77+777+7777+77777+777777+7777777=8641969
原来还要进行质因数分解,下面用了最简单的一种分解算法: // 假设输入的值为number对应的值 int number =7;int sum = 0; for (int i = 0, temp = 0; i < number; i++) { temp += number * ((int) Math.Pow(10, i)); sum += temp; Console.Write(temp); if (i < number - 1) Console.Write("+"); else Console.Write("="); } Console.WriteLine(sum);Console.Write("{0}=", sum); do { int factor = 2; while ((sum % factor) != 0) factor++; sum /= factor; Console.Write("{0}", factor); if (sum>1) Console.Write("*"); } while (sum > 1); 结果: 7+77+777+7777+77777+777777+7777777=8641969 8641969=7*127*9721
{
long lReturn = 0;
string strI = "";
for (int j = 0; j < i; j++)
{
strI = "";
for (int x = 0; x < i; x++)
{
strI = strI + i.ToString();
}
lReturn = lReturn + long.Parse(strI);
}
return lReturn;
}
int num = 3;
int final=num;
int result=num;;
//5 55 555 5555 55555
for (int i = 1; i < num; i++)
{
final = num + final * 10;
result=result+final;
}
Console.WriteLine(result.ToString());
Console.Read();
给你写个函数int printi(int i)
{
int x=0;
string str, stri;
str="";
stri=i.tostring();
for(int n=0;n<i;n++)
{
str=str+stri;
x=x+conver.toint32( str);}
retun conver.toint32( str);
}
public int Accumulation(int n)
{
int result =0;
for (int i = 1; i <= n; i++)
{
result += InitNo(n, i);
}
return result;
}
public int InitNo(int n, int m)
{
string str = "" ;
for (int i = 0; i < m; i++)
str += n.ToString();
return int.Parse(str);
}
void Main()
{
Console.WriteLine(Sum(2)); //3+33+333=369
}int Sum(int n)
{
if(n<1) return 0;
int m=0;
int result=0;
for(int i=1;i<=n;i++)
{
result +=int.Parse( new string(char.Parse(n.ToString()),i));
}
return result;
}
string result = ""; for (int i = 0; i < paramNum; i++)
{
for (int j = 0; j < i + 1; j++)
{
result = result + paramNum.ToString();
} if (i != (paramNum - 1))
{
result = result + "+";
}
}
return result;
}
你是要的这种效果吗?
控制台上輸入開始
請輸入一個數值:
好了我輸入一個3
然後給我打印出來的是
3+33+333=369
然後打印出來的是
369 是質數這是一種情況
另外一種
輸入2
打印出來是2+22=24
24=2x2x2x3可以實現嗎?其實那個
q107770540
已經把邏輯寫的很清晰了!只需要加工一下!
private string getStr(int paramNum) {
string result = ""; for (int i = 0; i < paramNum; i++)
{
for (int j = 0; j < i + 1; j++)
{
result = result + paramNum.ToString();
} if (i != (paramNum - 1))
{
result = result + "+";
}
}
result = result + "="; int numSum = 0;
for (int i = 1; i <= paramNum; i++)
{
numSum += int.Parse(new string(char.Parse(paramNum.ToString()), i));
}
result = result + numSum.ToString();
result = result + " = " + getZhiYinshu(numSum);
return result;
} private string getZhiYinshu(int number)
{
int sum = number;
int[] str = new int[20];
int k = 0;
int flag = 1;
for (int i = 2; ; i++)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 0)
{
flag = 1;
continue;
}
while (true)
{
if (number % i == 0)
{
number = number / i;
str[k] = i;
k++;
}
else
break;
}
if (number == 1)
break;
}
string print = ""; for (int j = 0; j < 20; j++)
{
if (str[j] != 0) {
print = print + int.Parse(str[j].ToString()) + "*";
}
} return print.Substring(0,print.Length - 1);
}
// 假设输入的值为number对应的值
int number = 7;int sum = 0;
for (int i = 0, temp = 0; i < number; i++)
{
temp += number * ((int) Math.Pow(10, i));
sum += temp;
Console.Write(temp);
if (i < number - 1)
Console.Write("+");
else
Console.Write("=");
}
Console.WriteLine(sum);
结果:
7+77+777+7777+77777+777777+7777777=8641969
// 假设输入的值为number对应的值
int number =7;int sum = 0;
for (int i = 0, temp = 0; i < number; i++)
{
temp += number * ((int) Math.Pow(10, i));
sum += temp;
Console.Write(temp);
if (i < number - 1)
Console.Write("+");
else
Console.Write("=");
}
Console.WriteLine(sum);Console.Write("{0}=", sum);
do
{
int factor = 2;
while ((sum % factor) != 0)
factor++;
sum /= factor;
Console.Write("{0}", factor); if (sum>1)
Console.Write("*");
} while (sum > 1);
结果:
7+77+777+7777+77777+777777+7777777=8641969
8641969=7*127*9721