2015-09-22 5 views
-3

Моя проблема программирования C заключается в том, чтобы найти наименьшую полезную цифру n-цифры. последовательность равна 1213, тогда пользователь вводит число, количество появлений 1213 будет зависеть от ввода. например:поиск наименьшего числа

(input: 1 output:1)  (input:2 output:12) (input:3 output:121) (input:4 output: 1213) (input:5 output:12131) (input:6 output:121312) (input:7 output: 1213121)  

последовательность будет повторяться, число вводится покажет, сколько цифр последовательности будут появляться на выходе, но последовательность должна следовать, 1213

Noww, что я создал до сих пор является:

include<stdio.h> 
#include<stdlib.h> 
main() 
{ 
    int a, x, num, ar[500] 
    printf("Input an integer: "); 
    scanf("%d",&a); 
    printf("The smallest good number of %d number":); 
    scanf("%d", &num); ar[x]=num; 
}   

это только попросить пользователя ввести номер, и тогда я не знаю, как сделать 1213 вещь.

+0

Почему вы читаете 2 цифры? Не достаточно ли одного? Вы хотите что-то подобное: https://ideone.com/d4EeYX? – mch

+0

Я предполагаю, что 1213 не фиксирован. – drescherjm

+0

Поместите последовательность «хорошего числа» в массив, по одной цифре на элемент. Затем, когда они вводят свой номер, выполните цикл for с таким количеством итераций и выведите элемент, равный номеру цикла по модулю длины исходного массива. – WDS

ответ

1
#include<stdio.h> 
#include<stdlib.h> 
int main() 
{ unsigned int a, num, i, len; char result[500], aStr[9]; 
    printf("\nInput a positive integer less than 8 digits: "); scanf("%u", &a); 
    printf("\nInput a number of digits between 1 and 500: "); scanf("%u", &num); 

    // convert the input number a to string aStr and calculate its length 
    snprintf(aStr, 9, "%u", a); len = strlen(aStr); 
    // print the digits in result until the desired length is reached 
    for(i=0; i < num; i++) result[i] = aStr[i % len]; 
    *i = 0; // terminate the string 
    printf("The smallest good number is: %s\n", aStr); 

    return 0; 
} 
Смежные вопросы