Функция возвращает k первых цифр числа n

Уровень сложности:

Напишите функцию, которая принимает два целых числа 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

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 11.09.2012
Поделиться:

Комментарии

  1. Migizi

    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;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.