我正在尝试使用C#片段中的用户输入实现欧几里德算法,作为我学习该语言过程的一部分.MVS告诉我if和elif语句以及这些语句的结束括号都有错误.现在,来自pythonic背景这对我来说似乎很自然,所以请帮助我找出可能的错误.非常感谢帮助.
码:
namespace EuclideanAlgorithm
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter two numbers to calculate their GCD");
int input1 = Convert.ToInt32(Console.ReadLine());
int input2 = Convert.ToInt32(Console.ReadLine());
int remainder;
int a;
int b;
if (input1 == input2);
{
Console.Write("The GCD of", input1, "and", input2, "is", input1);
Console.ReadLine();
}
else if (input1 > input2);
{
a = input1;
b = input2;
while (remainder != 0);
{
remainder = a % b;
a = b;
b = remainder;
}
Console.Write("The GCD …Run Code Online (Sandbox Code Playgroud) 我写了一个简单的程序,将DNA翻译成RNA.基本上,您输入一个字符串,它将字符串分成字符并将它们发送到列表,移动字母并从结果列表中返回一个字符串.该程序正确地将a转换为u,并转换为a,但不将g转换为c,将c转换为g.
这是该计划:
def trad(x):
h=[]
for letter in x:
h.append(letter)
for letter in h:
if letter=="a":
h[h.index(letter)]="u"
continue
if letter=="t":
h[h.index(letter)]="a"
continue
if letter=="g":
h[h.index(letter)]="c"
continue
if letter=="c":
h[h.index(letter)]="g"
continue
ret=""
for letter in h:
ret+=letter
return ret
while True:
stry=raw_input("String?")
print trad(stry)
Run Code Online (Sandbox Code Playgroud)
现在,只是通过不迭代元素来改变程序,但是在位置上,它按预期工作.这是结果代码:
def trad(x):
h=[]
for letter in x:
h.append(letter)
for letter in xrange (0, len(h)):
if h[letter]=="a":
h[letter]="u"
continue
if h[letter]=="t":
h[letter]="a"
continue
if h[letter]=="g":
h[letter]="c"
continue
if h[letter]=="c":
h[letter]="g"
continue
ret=""
for letter in h:
ret+=letter …Run Code Online (Sandbox Code Playgroud)