C 计算一个幂和一个基的结果,不需要数学运算
在我的大学里,我被要求创建一个程序,要求用户输入两个输入。一个是基数,另一个是数字的幂。我不允许只使用C 计算一个幂和一个基的结果,不需要数学运算,c,C,在我的大学里,我被要求创建一个程序,要求用户输入两个输入。一个是基数,另一个是数字的幂。我不允许只使用math.h循环 这是我迄今为止的代码: #include <stdio.h> int main() { int base; printf(" Please enter the base: "); scanf("%d", &base); int power; printf(" Please enter the power: ");
math.h
循环
这是我迄今为止的代码:
#include <stdio.h>
int main() {
int base;
printf(" Please enter the base: ");
scanf("%d", &base);
int power;
printf(" Please enter the power: ");
scanf("%d", &power);
printf("\n%d ^ %d is the same as...\n\n", base, power);
printf(" %d", base);
int reps;
int number;
for(reps = base; reps <= power; reps += 1) {
printf("* %d ", base);
}
for(number; number <= power;number += 1) {
int result = base * base;
for (result; number <= power; result = base * result) {
result = result * base;
printf("\n or %d", result);
}
}
return 0;
}
#包括
int main(){
int-base;
printf(“请输入基数:”);
scanf(“%d”、&base);
整数幂;
printf(“请输入电源:”);
扫描频率(“%d”和功率);
printf(“\n%d^%d与…\n\n”相同,基,功率);
printf(“%d”,基数);
杰出代表;
整数;
对于(reps=base;reps计算功率的循环如下所示
int product = 1;
for(int multiplicationCounter = 1;multiplicationCounter <= power; multiplicationCounter ++) {
product *= base;
}
printf("Result is %d", product);
int-product=1;
对于(int-multiplicationCounter=1;multiplicationCounter计算幂的循环如下所示
int product = 1;
for(int multiplicationCounter = 1;multiplicationCounter <= power; multiplicationCounter ++) {
product *= base;
}
printf("Result is %d", product);
int-product=1;
对于(int-乘法计数器=1;乘法计数器假设基和幂都是正整数
然后
int结果=1;
对于(int i=0;i假设基和幂都是正整数
然后
int结果=1;
对于(int i=0;i(您的主要问题是使用未初始化的变量;在C中这样做的行为是未定义的。)
但是,让我们重做答案。首先要做的是将实际功率函数从所有输入和输出中分离出来。关于该函数,我将把我最喜欢的方法放入答案池中,前提是您将仔细阅读并理解它
您可以使用称为平方求幂的技术解决此问题:
该方法在中有充分的解释(您的主要问题是使用未初始化的变量;在C中这样做的行为是未定义的。)
但是,让我们重做答案。首先要做的是将实际功率函数从所有输入和输出中分离出来。关于该函数,我将把我最喜欢的方法放入答案池中,前提是您将仔细阅读并理解它
您可以使用称为平方求幂的技术解决此问题:
该方法已在中进行了充分说明,这应该是可行的
#include <stdio.h>
int main()
{
int base;
printf(" Please enter the base: ");
scanf("%d", &base);
int power;
printf(" Please enter the power: ");
scanf("%d", &power);
printf("\n%d ^ %d is the same as...\n\n", base, power);
printf(" %d", base);
int reps;
int number;
int result=1:
for(number=1; number <= power;number += 1)
{
result=result*base
}
printf("The result is %d", result);
return 0;
#包括
int main()
{
int-base;
printf(“请输入基数:”);
scanf(“%d”、&base);
整数幂;
printf(“请输入电源:”);
扫描频率(“%d”和功率);
printf(“\n%d^%d与…\n\n”相同,基,功率);
printf(“%d”,基数);
杰出代表;
整数;
int结果=1:
对于(数字=1;数字这应该有效
#include <stdio.h>
int main()
{
int base;
printf(" Please enter the base: ");
scanf("%d", &base);
int power;
printf(" Please enter the power: ");
scanf("%d", &power);
printf("\n%d ^ %d is the same as...\n\n", base, power);
printf(" %d", base);
int reps;
int number;
int result=1:
for(number=1; number <= power;number += 1)
{
result=result*base
}
printf("The result is %d", result);
return 0;
#包括
int main()
{
int-base;
printf(“请输入基数:”);
scanf(“%d”、&base);
整数幂;
printf(“请输入电源:”);
扫描频率(“%d”和功率);
printf(“\n%d^%d与…\n\n”相同,基,功率);
printf(“%d”,基数);
杰出代表;
整数;
int结果=1:
对于(number=1;numberint number;
-->int number=0;
你能告诉我们发生了什么以及预期会发生什么吗?你是……的同学吗。。lol@SouravGhosh更好的for(number=0;…
甚至更好(如果在更高的c标准上):for(int number=0
int number;
-->int number=0;
你能告诉我们发生了什么以及预期会发生什么吗?你是……的同学吗。。lol@SouravGhosh更好的for(number=0;…
甚至更好(如果在更高的c标准上):for(int number=0
基数为10的2=10的平方幂。然后循环将循环2倍的幂,并将乘积乘以10*10的基数。或者你的意思是什么?我被他的问题的措辞弄糊涂了。我认为Base指的是数字的基数。例如11 Base 2=3 Base 10
。我错了尽管如此。啊,对不起。我没把你带到那里。基数是10的2=10的平方幂。然后循环将循环2倍的幂,每次乘以10*10的基数。或者你是什么意思?我被他的问题的措辞弄糊涂了。我认为基数指的是数字的基数。例如11 Base 2=3 Base 10
。不过我错了。啊,对不起。没有让你明白。唯一明智的答案是,其他的答案就像是通过在循环中添加来建议乘法。但是注释/*这意味着幂是奇的*/
,这并不是真的相关,更多的是关于检查每一位的位置。@WeatherVane:是的,这是误导。我已经修改了。@AnttiHaapala:算法wworks适用于负数base
(它甚至适用于浮点base
)。唯一明智的答案是,其他的答案就像是通过在循环中添加来建议乘法。但是注释/*这意味着幂是奇数*/
并不是真正相关的,它更多的是关于检查每个位的位置。@WeatherVane:是的,这是误导性的。我已经修正了。@AnttiHaapala:该算法适用于负基
。(它甚至适用于浮点基)。谢谢你这么多的朋友!谢谢你这么多的朋友!