判断一个整数是否是n^m次方类型数据,并比较乘法和除法性能差异

来源:互联网 发布:外文数据库检索 编辑:程序博客网 时间:2024/06/16 18:22
求取a = n^m 
#include <stdlib.h>#include <stdio.h>#include <ctype.h>int testnum(int num, int base){if (num <= 0 || num < base || num % base != 0)return -1;if(num == base)return 1;num = num/base; return num == 1 ? 1 : testnum(num, base);}int testnummuti(int num, int base, int value){if (num <= 0 || base <= 0 || value <= 0)return -1;if(num < base)return -1;if(num == base)return 1;value *= base;if(value > num)return -1;return value == num ? 1 : testnummuti(num, base, value);}int main(int argc, char **argv){int num;int base = 2;while(1){printf("please enter integer!\n");scanf("%d", &num);if(num == 10)break;//int a = testnum(num, base);int a = testnummuti(1024, base, base);if(a == 1) {printf("OK!\n");} else {printf("FAILED!\n");}}return 0;}
反汇编发现其实 % 用的也是除法运算。
0 0
原创粉丝点击