C语言实现大整数乘法代码的完整代码及运行结果



// Dmul.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#define MAXLENGTH 1000
#include <stdio.h>
#include <string.h>

void compute(char * a, char * b,char *c)
{
  int i,j,m,n;
  long sum,carry;
  m = strlen(a)-1;
  n = strlen(b)-1;
 for(i=m;i>=0;i--)
    a[i] -= '0';
 for(i=n;i >=0;i--)
    b[i] -='0';
  c[m+n+2] ='\0';
 carry =0;
 for(i=m+n;i>=0;i--)
 {
   sum=carry;
   if((j=(i-m))<0)
     j=0;
   for(;j<=i&& j <=n;j++)
      sum += a[i-j]*b[j];
   c[i+1] = sum %10 + '0'; /*算出保留的数字*/
   carry = sum/10;
 }
 if((c[0]=carry+'0')=='0') /* if no carry*/
   c[0] = '/040'; /* space */
  
}


void main()
{
   char a[MAXLENGTH],b[MAXLENGTH],c[MAXLENGTH*2];
   puts("*****         wmm        ******");
   puts("*****     大整数乘法    ******");
   puts("Input multiplier");
   gets(a);
   puts("Input multiplier");
   gets(b);
   compute(a,b,c);
   puts("Answer:");
   puts(c);
   getchar();
}

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 24 点游戏是一种数学游戏,目标是用 4 个数字 (通常是扑克牌中的 A, 2, 3, 4) 和四则运算 (加法、减法、乘法、除法),得到 24 点。 以下是使用 C 语言编写的 24 点程序的完整代码: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> // 定义运算符 #define ADD '+' #define SUB '-' #define MUL '*' #define DIV '/' // 定义常量 #define TARGET 24 #define COUNT 4 // 定义函数原型 bool dfs(double *nums, int count, double target); bool check(double a, double b, char op, double *res); int main(int argc, char *argv[]) { // 检查命令行参数 if (argc != COUNT + 1) { printf("Usage: 24point num1 num2 num3 num4\n"); return 1; } // 将命令行参数转换为浮点数数组 double nums[COUNT]; for (int i = 0; i < COUNT; i++) { nums[i] = atof(argv[i + 1]); } // 调用 DFS 算法求解 if (dfs(nums, COUNT, TARGET)) { printf("Solution found!\n"); } else { printf("No solution found.\n"); } return 0; } /** * DFS 算法求解 24 点问题 * @param nums 数字数组 * @param count 数字数组中数字的个数 * @param target 目标值 * @return 是否找到了解决方案 */ bool dfs(double *nums, int count, double target) { // 如果剩余的数字只有一个,则检查是否等于目标值 if (count == 1) { return nums[0] == target; } // 对于数字数组中的 ### 回答2: 对于使用C语言编写完整的24点程序代码,以下是一个简单的实现示例: ```c #include <stdio.h> int calculate(int a, int b, char operator) { if (operator == '+') { return a + b; } else if (operator == '-') { return a - b; } else if (operator == '*') { return a * b; } else { return a / b; } } int solve24(int arr[]) { int operators[3] = {'+', '-', '*', '/'}; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { for (int k = 0; k < 4; k++) { int result1 = calculate(arr[0], arr[1], operators[i]); int result2 = calculate(result1, arr[2], operators[j]); int finalResult = calculate(result2, arr[3], operators[k]); if (finalResult == 24) { printf("((%d %c %d) %c %d) %c %d = 24\n", arr[0], operators[i], arr[1], operators[j], arr[2], operators[k], arr[3]); return 1; } } } } return 0; } int main() { int arr[4]; printf("请输入4个数字(1-9):\n"); for (int i = 0; i < 4; i++) { scanf("%d", &arr[i]); } if (!solve24(arr)) { printf("无法通过加减乘除计算得到24\n"); } return 0; } ``` 这个程序在运行时会要求输入4个1到9之间的数字,然后通过遍历所有的运算符组合,计算每个组合的结果,判断是否等于24。如果找到了一个结果等于24的组合,则会输出运算步骤,否则输出无法通过加减乘除计算得到24。请注意,这只是一个简单的实现示例,存在多种求解24点游戏的算法,该示例可能并不包含所有的可能解。 ### 回答3: 24点游戏是一种经典的数学智力游戏,它要求玩家通过给定的四个1-13之间的整数,使用加减乘除和括号进行运算得到结果为24的表达式。下面是使用C语言编写的一个简单的24点游戏程序代码: ```c #include <stdio.h> int is24(int a, int b, int c, int d) { float result1, result2, result3, result4, result5; // 使用所有可能的运算顺序进行计算 result1 = a + b + c + d; result2 = a + b + c - d; result3 = a * b + c * d; result4 = (float)a / b * c * d; result5 = a + b + (float)c / d; // 判断结果是否为24 if (result1 == 24 || result2 == 24 || result3 == 24 || result4 == 24 || result5 == 24) { return 1; } else { return 0; } } int main() { int a, b, c, d; printf("请输入四个整数(1-13之间):"); scanf("%d %d %d %d", &a, &b, &c, &d); // 调用函数判断是否存在一个表达式等于24 if (is24(a, b, c, d) == 1) { printf("存在一个表达式等于24。\n"); } else { printf("不存在一个表达式等于24。\n"); } return 0; } ``` 该程序中,is24函数用于判断给定的四个整数是否存在一种运算顺序能够得到结果为24的表达式。在主函数中,首先获取用户输入的四个整数,然后调用is24函数进行判断,最后输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值