Напишите функцию, которая принимает два целых числа
n и k и возвращает число, содержащее k первых цифр числа n.Прочитайте статью о том, как определять и использовать функции в своей программе. Подсчет разрядов числа можно организовать с помощью цикла while. Результат работы программы показан ниже:
// k_digit.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int k_digit(int n, int k); // прототип
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "rus");
cout << "Введите число: ";
unsigned long number, level;
cin >> number;
cout << "Сколько разрядов показать? ";
cin >> level;
cout << k_digit(number, level) << endl;
system("pause");
return 0;
}
int k_digit(int n, int k)
{
int save_n = n, // делаем копию числа
counter_digits = 0; // количество разрядов вводимого числа
while (save_n) // пока результат деления не равен нулю
{
save_n /= 10;
counter_digits++; // подсчёт количества разрядов вводимого числа
}
for (int counter = 0; counter < (counter_digits - k); counter++ )
n /= 10; // отсекаем лишние разряды введённого числа
return n;
}
Результат:
CppStudio.com
Введите число: 345238
Сколько разрядов показать? 3
345
Комментарии
Migizi
#include <conio.h> #include <iostream> #include <string> #include <time.h> #include <iomanip> using namespace std; int main() { srand((unsigned)time(NULL)); setlocale(LC_ALL, "RUS"); int l, r, p = 0; cin >> l; cin>>r; p = l; for (int i = 0;; i++) { if (p == 0) { p = i; break; } p /= 10; } for (int i = 0; i < p - r; i++) { l /= 10; } cout << l; _getch(); return 0; }