Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int is_number(char a) {
- return (a >= '0') && (a <= '9');
- }
- int is_op(char a) {
- return a == '+' || a == '-' || a == '*' || a == '/' ;
- }
- int calc(a, b, op) {
- if (op == '+')
- return a + b;
- if (op == '-' )
- return a - b;
- if (op == '*')
- return a * b;
- if (op == '/' )
- return a / b;
- }
- void find_code(int start, int prev_number, char text[]) {
- int b = 0, a;
- a = prev_number;
- char op = '\0';
- for (int i = start; text[i] != '\0'; ++i) {
- if (is_number(text[i]) && !op) {
- a = a * 10 + text[i];
- }
- else if (is_op(text[i]) && a && !op) {
- op = text[i];
- }
- else if (op && is_number(text[i])) {
- b = b * 10 + text[i];
- }
- else if (op && a && b) {
- if (calc(a, b, op) <= 120000)
- printf("%d %c %d = %d\n", a, op, b, calc(a, b, op));
- find_code(i, b, text);
- }
- if (!(is_number(text[i]) || is_op(text[i])))
- find_code(i + 1, 0, text);
- }
- }
- int main(void) {
- char code[2001];
- scanf("%2001s", code);
- find_code(0, 0, code);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement