@swyt

Где ошибка в коде?

Назовем натуральное число палиндромом, если его запись читается одинаково
сначала и с конца (например: 4884, 393,1). Найти все меньшие ста натуральные
числа, которые при возведении в квадрат дают палиндром.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _5_вариант._2_задание
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int n, b, c, d=0;
        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "";
            n = int.Parse(textBox1.Text);
            for (int i = 1; i < n; i++)
            {
                b = 0;
                c = 0;
                b = Convert.ToInt32((i * i).ToString().Reverse());
                c = i * i;

                if (b == c)
                {
                    d = d + 1;
                }
            }
            label1.Text = d.ToString();
        }
    }
}
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
Назовем натуральное число палиндромом, если его запись читается одинаково
сначала и с конца (например: 4884, 393,1)
про 393,1 не понятно
Где ошибка в коде?
ошибки и в коде, ошибки в ходе мыслей
1 - зачем ввод заранее известного параметра? (100)
2 - зачем сравнивать с b мало того что вы его не меняете, вы его еще и всегда обнуляете!!!кажется написано в процессе своих оптимизаций.. сорян
3 - пример на подумать (еще утоптано)
using System;
using System.Linq;

namespace palindrome
{
    class Program
    {
        static void Main(string[] args)
        {
            int p = 0;
            string q = default, r = default;
            for (int i = 1; i < 100; i++)
                if ((q = (i * i).ToString()) == (r = new string(q.Reverse().ToArray())))
                    Console.WriteLine($"palindrome {++p} q={q} == r={r}"); ;
            Console.WriteLine($"total: {p}");
        }
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@galaxy
У string есть метод Reverse()? Интернет пишет, что есть только Array.Reverse()
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Ошибка в том, что ваш ответ label1.Text = d.ToString(); не отвечает на поставленный вопрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы