Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdbool.h>
- int power(int num, int step)
- {
- int ans = 1;
- if (step != 0)
- while (step > 0)
- {
- ans *= num;
- step--;
- }
- else
- return 1;
- }
- int fromNto10(int num, int base) // N < 10
- {
- int ans = 0;
- int i = 0;
- while (num > 0)
- {
- ans += (num % 10) * power(base,i);
- i++;
- num /= 10;
- }
- return ans;
- }
- int main()
- {
- int base, tmp = 0, k = 0;
- char num[11];
- scanf("%d", &base);
- scanf("%s", &num);
- for (int i = 0; i < 6 && num[i] != '\0'; i++)
- {
- k++;
- }
- //printf("%d\n", k);
- for (int i = 0; i < k; i++)
- tmp += (num[i] - '0') * power(10, k-i-1);
- bool flag = true;
- for (int i = 0 ; i < k; i ++)
- {
- if (num[i] - '0' > base && flag)
- {
- flag = false;
- break;
- }
- }
- if (!flag && (base != 2 || base != 8 || base != 10))
- printf("Number is Wrong.");
- else if (base == 10)
- {
- printf("%d %d\n", base, tmp);
- printf("%x", tmp);
- }
- else if (base == 2 || base == 8)
- {
- printf("%d %d\n", base, tmp);
- printf("%x", fromNto10(tmp, base));
- }
- else
- printf("Base is wrong.");
- //printf("%d", tmp);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement