Название: Нахождение цифры № n в непрерывной последовательности цифр чисел Фибоначчи Отправлено: alexu007 от Май 02, 2022, 08:49 Находит цифру и визуально показывает его в последовательности:
Код: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr); ~Widget(); private: Ui::Widget *ui; public slots: void press_pbtn_01(); }; #endif // WIDGET_H Код: #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); QObject::connect(ui->pbtn_01, SIGNAL(clicked()), this, SLOT(press_pbtn_01())); } Widget::~Widget() { delete ui; } // количество цифр в числе int len_digit(quint64 x) { int cx = 0; while(x > 0) { cx++; x /= 10; } return cx; } void Widget::press_pbtn_01() { QString str, s1, s2; quint64 fib0, fib1; quint32 i, k, cx, cf; QString strinp = ui->lineEdit_01->text(); quint32 inp = strinp.toInt(); ui->lineEdit_02->clear(); ui->label_01->clear(); ui->label_02->clear(); if((!inp) || (inp > 929)) return; fib0 = 0; fib1 = 1; cx = 1; cf = 0; while(cx < inp) { fib0 = fib0 + fib1; fib1 = fib0 - fib1; cx += len_digit(fib1); cf++; str += QString::number(fib1); } k = len_digit(fib1); str.remove(str.length() - k, k); if(inp == 1) { cf = 1; fib1 = 0; } fib0 = fib1; s1 = QString::number(fib0); for(i = 0; i < cx - inp; i++) { fib1 /= 10; } for(i = 0; i < k; i++) { quint32 m = k - (cx - inp) - 1; if(i == m) s2 += "_"; s2 += s1.at(i); if(i == m) s2 += "_"; } ui->lineEdit_02->setText(str + s2); str = QString::number(cf); ui->label_01->setText(QString::number(fib1 % 10)); ui->label_02->setText(str + " " + QString::number(fib0)); } Название: Re: Нахождение цифры № n в непрерывной последовательности цифр чисел Фибоначчи Отправлено: qtkoder777 от Май 02, 2022, 22:10 Найти эту цифру, НЕ СЧИТАЯ сами числа Фибоначчи было бы интересно. А то они, суки, быстро растут, даже 1000-ю цифру лобовым методом найти не удаётся. Интересно сможет ли это сделать ИИ.
Название: Re: Нахождение цифры № n в непрерывной последовательности цифр чисел Фибоначчи Отправлено: tux от Май 02, 2022, 22:36 Лучше не сравнивать напрямую знаковые и беззнаковые числа. Иначе бывают весьма занятные баги.
|