Перевод числа в семеричную систему счисления(visual Studio C#)

pastorixx

Active member
07.05.2010
26
0
#1
Здравствуйте, задача такая: "Перевести введенное число в семеричную с/с и выяснить входит ли второе введенное число в семеричное представление первого".
Программа написана в Visual Studio C#
Код работает только до 48. Дальше перевод в 7ю систему неправильный. Подскажите как это исправить.

Код:
namespace С_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{//поменять тип с инта на соответствующий


int N = (int)numericUpDown1.Value;
int X = (int)numericUpDown2.Value;
int j = 2;
double[] m = new double[j];
double Z;
string n,x;

Z = N;
m[0] = N / 7;

if (Z >= 7)
{
for (int i = 1; i < j; i++)
{
m[i] = Z % 7;
Z = m[i];
if (Z < 7) break;
j++;
}
Z = j = 0;
for (int i = m.Length; i > 0; i--)
{
Z += m[j] * System.Math.Exp((i - 1) * System.Math.Log(10));
if (m[j] == 0) break;
j++;
}
}
label6.Text ="" + Z;

int k = 0;
n = Convert.ToString(Z);
x = Convert.ToString(X);

k = n.IndexOf(x);
if (k!=-1)
label4.Text = "да";
else label4.Text = "нет";

}
}
}
 
E
#2
Исправить просто, надо засунуть это в студию, стартонуть под дебагером, найти место которое портит всю малину, исправить.
 

pastorixx

Active member
07.05.2010
26
0
#3
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Семестровая_задача_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

int N = (int)numericUpDown1.Value;
int X = (int)numericUpDown2.Value;

string[] m = new string[8];
string z,Z,K;
int i = 7,x,n;

n = N * N;
do
{
x = n % 7;
n = n / 7;

if (x < 7)
z = Convert.ToString(x);
else
z = - 10 + Convert.ToString(x);

m[i] = z;
i--;
} while (n > 0);

Z = "";

for(int j = 0;j<=7;j++)
{
Z +=m[j];
}
int k = 0;
label6.Text = Z;
K = Convert.ToString(X);
k = Z.IndexOf(K);

if (k != -1)
label4.Text = "да";
else label4.Text = "нет";

}
}
}
Прога работает