Форум программистов, компьютерный форум, киберфорум
Наши страницы

Задача: Необычные цифры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помощь по лабораторке http://www.cyberforum.ru/cpp-beginners/thread652318.html
Здравствуйте! Пожалуйста, помогите мне с лабораторной работой на C++. Уже пятый день пытаюсь решить и все безрезультатно. Вот текст задачи: Лабораторная работа №1, вариант 18. Для десяти...
C++ DirectX текстуры В общем такая проблема. Есть задача натянуть несколько текстур на ландшафт(который уже сгенерировал), причем необходимо это сделать варьируя прозрачность. Сделать это надо открыв текстуру как... http://www.cyberforum.ru/cpp-beginners/thread652306.html
Как обратиться через указатель к данным, которые он адресует? C++
c++ как обратиться через указатель к данным, которые он адресует?
C++ Заполнение матрицы
Нужна помощь. Заполнить матрицу, от левого нижнего угла по диагонали: слева - вверх. -размерность матрицы должна вводиться при выполнении программы; -решение задачи должно быть оформлено в виде...
C++ Передача массива в подпрограмму http://www.cyberforum.ru/cpp-beginners/thread652284.html
задаю массив глобально r вот так вызываю подпрограмму pg(0,-1,0, r); сама подрограмма void pg(int v,int l, int t, int r) { int j;
C++ Клиент для MS SQL Server 2008 Доброго времени суток! Нам в универе дали задание, написать программу (Клиент - Сервер) для работы с БД MS SQL Server 2008. Программа ведет учет техники на комп. складе. Она должна уметь... подробнее

Показать сообщение отдельно
Ober
0 / 0 / 0
Регистрация: 28.02.2016
15.09.2012, 18:25
напсал код, вроде все работает, проверяет не только в конце числа, а везде
ключевые моменты в комментариях:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <math.h>
 
int count_digits(int n)
{
    int cnt = 1; 
 
    while (n /= 10)
        cnt++;
    return cnt;
}
 
/* checks if n2 is contained in the decimal notation of n1 */
int iscontained_in_dec(int n1, int n2) 
{
    int n1_nd = count_digits(n1);
    int n2_nd = count_digits(n2);
 
    int modulo = (int) 
        pow((double) 10, (double) n1_nd - 1);
    int div = (int)
        pow((double) 10, (double) n1_nd - n2_nd);
 
    if (n1_nd < n2_nd)
        return 0;
 
    /* go from left to right */
    while (div > 0) {
        /* divison by div cuts all excess digits from the right */
        if (n2 == n1 / div) 
            return 1;
        n1 %= modulo; /* cut digit from the left */
        modulo /= 10;
        div /= 10;
    }
    return 0;
}
 
int main()
{
    int n = 0;
 
    while (printf("enter n: ") > 0 && scanf("%d", &n) && n)
        printf("square: %d, %s\n", n * n, 
            iscontained_in_dec(n*n, n) ? "yes" : "no");
    return 0;
}
ну и я не стал заморачиваться с типами данных, везде сделал int
и случаи с кривыми входными данными тоже не учел, захотите - сделаете
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru