Название: Нахождение цифры № 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
Лучше не сравнивать напрямую знаковые и беззнаковые числа. Иначе бывают весьма занятные баги.
|