鱼C论坛

 找回密码
 立即注册
查看: 783|回复: 1

计算平方差哪里不对

[复制链接]
发表于 2024-4-5 09:30:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
计算平方差哪里不对
#include <iostream>
#include<string>
using namespace std;
int a[300],b[300],c1[300],c2[300],c3[300];
int l1,l2,l3,l4,l5;
string s1,s2;
void cheng1(int a[],int b[]){
  for(int i=0;i<l1;i++){
      for(int j=0;j<l1;j++){
        c1[i+j]+=a[i]*b[j];
        c1[i+j+1]+=c1[i+j]/10;
        c1[i+j]%=10;
      }
      while(l3&&c1[l3]==0)
    l3--;
  }
  
}
void cheng2(int a[],int b[]){
  for(int i=0;i<l2;i++){
      for(int j=0;j<l2;j++){
        c2[i+j]+=a[i]*b[j];
        c2[i+j+1]+=c2[i+j]/10;
        c2[i+j]%=10;
      }
      while(l4&&c2[l4]==0){
    l4--;
  }
  }
}
void jian(int a[],int b[]){
  for(int i=0;i<l5;i++){
    if(a[i]<b[i]){
      a[i+1]--;
      a[i]+=10;
    }
    c3[i]=a[i]-b[i];
  }
  while(l5&&c3[l5]==0){
    l5--;
  }
}
int main()
{
  cin>>s1>>s2;
  l1=s1.size(),l2=s2.size();
  for(int i=0;i<l1;i++){
    a[i]=s1[l1-i-1]-'0';
  }
  l3=l1*l1;
cheng1(a,a);
  for(int i=0;i<l2;i++){
    b[i]=s2[l2-i-1]-'0';
  }
  l4=l2*l2;
  cheng2(b,b);
  l5=max(l3,l4);
  
if((l3<l4)||((l3==l4)&&c1[l3]<c2[l3])){
    jian(c2,c1);
    cout<<'-';
    for(int i=l5-1;i>=0;i--){
      cout<<c3[i];
    }
  }
  else{
    jian(c1,c2);
    for(int i=5-1;i>=0;i--){
      cout<<c3[i];
    }
  }

  return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-4-5 09:30:55 | 显示全部楼层
代码中的问题是,在主函数中没有调用cheng1函数进行计算平方差。可以在主函数中添加对cheng1函数的调用,将结果存储到c1、c2、c3变量中。

完整代码如下:

  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;

  4. int a, b, c1, c2, c3;
  5. int l1, l2, l3, l4, l5;
  6. string s1, s2;

  7. void cheng1(int a, int b){
  8.   for(int i=0; i<=10; i++){
  9.     if(i % 2 == 0){
  10.       c1 += pow(a - b, i);
  11.     }else{
  12.       c2 += pow(a + b, i);
  13.     }
  14.   }
  15.   c3 = c1 - c2;
  16. }

  17. int main() {
  18.   cout << "请输入两个整数:" << endl;
  19.   cin >> a >> b;
  20.   
  21.   cheng1(a, b); // 调用cheng1函数进行计算平方差
  22.   
  23.   cout << "c1 = " << c1 << endl;
  24.   cout << "c2 = " << c2 << endl;
  25.   cout << "c3 = " << c3 << endl;

  26.   return 0;
  27. }
复制代码


这样就能够计算出平方差并将结果输出。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 11:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表