抽点时间,帮帮忙。。。

lanhxg 2010-10-14 11:35:37
//小弟在北大的ACM刷题,1001 接过那里的测试数据都过了,提交之后就是wrong answer ,我和我同学的正确程序对比过,
//数据都对。先在实在没法子了,请各位帮忙找下数据。。。也肯能本代码就是错误的

#include<iostream>
#include<string>
#include <string.h>

using namespace std ;
typedef int HP[250];

class CHP
{
HP m_Data ;
int m_PiontPos ;
public:
CHP();
CHP& operator *( const CHP & factor)const;
CHP & Pow(const int m )const;
//friend fution
friend std::istream & operator >>(std::istream & in ,CHP & hp);
friend std::ostream & operator <<(std::ostream & os ,const CHP & hp);
};
int main(void)
{
CHP a,b,c ;
int m;
while(cin>>a>>m)
{
c=a.Pow(m);
cout<<c<<endl ;
}
}
//----------------------------------
//about CHP member funtiong implement
CHP::CHP()
{
memset(m_Data,0,sizeof(m_Data));
m_PiontPos=0 ;
}
std::istream & operator >>(std::istream & in ,CHP & hp)
{
string tmp ;
bool bPoint = false;
in>>tmp ;
int i , j ;
for(j = tmp.size()-1, i = 1 ;j>=0 ;j--)
{
if(tmp[j]!='.')
hp.m_Data[i++] = tmp[j]-'0';
else
hp.m_PiontPos = tmp.size()-1-j , bPoint = true ;
}
if(bPoint == false )
hp.m_PiontPos = 0 ,hp.m_Data[0] = tmp.size() ;
else
hp.m_Data[0]=tmp.size()-1;
return in ;
}
std::ostream & operator <<(std::ostream & os ,const CHP & hp)
{
for(int i = hp.m_Data[0] ; i > 0 ;i-- )
{
if(i==hp.m_PiontPos)
os<<"." ;
os<<hp.m_Data[i];
}
return os ;
}

CHP& CHP::operator *( const CHP & factor)const
{
CHP Mul;
int len = this->m_Data[0]>=factor.m_Data[0]?this->m_Data[0]:factor.m_Data[0];
for(int i = 1 ; i <= this->m_Data[0] ; i++)
for( int j =1 ; j<=factor.m_Data[0] ; j++)
Mul.m_Data[i+j-1]+=this->m_Data[i]*factor.m_Data[j];
Mul.m_PiontPos = this->m_PiontPos+factor.m_PiontPos ; //积的小数位数为两为小数之和
len = this->m_Data[0]+factor.m_Data[0];
for(int i = 1 ;i<=len ;i++)
{
if(Mul.m_Data[i]>9)
{
Mul.m_Data[i+1]+=Mul.m_Data[i]/10;
Mul.m_Data[i]%=10;
}
}
while(Mul.m_PiontPos!=0&&len>Mul.m_PiontPos && Mul.m_Data[len]<=0) len-- ;
Mul.m_Data[0]=len ;
return Mul ;
}
CHP & CHP::Pow(const int m )const
{
int k = m;
CHP tmp, res ;
memcpy(tmp.m_Data,this->m_Data,sizeof(this->m_Data));
tmp.m_PiontPos = this->m_PiontPos;
res.m_Data[0]=res.m_Data[1]=1 ,res.m_PiontPos =0 ;
while(k!=0)
{
if(k&1)
res =res*tmp;
tmp=tmp*tmp;
k=k>>1;
}
res.m_PiontPos = this->m_PiontPos*m ;
//---------------------------------------------------------
//去末尾0工作
int left =1 ;
while(res.m_Data[left]==0&&left<=res.m_PiontPos) left++; //末尾有left 个0
if(left!=1)
{
left-=1;
for(int i=left+1 ;i<=res.m_Data[0];i++)
{
res.m_Data[i-left]=res.m_Data[i];
}
res.m_Data[0]-=left ;
if(left==res.m_PiontPos) res.m_PiontPos=0;
else res.m_PiontPos-=left;
}
int right = res.m_Data[0];

while(res.m_Data[right]==0&&right>res.m_PiontPos) right-- ;
res.m_Data[0]=right;
return res ;
}
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluejays 2010-10-14
  • 打赏
  • 举报
回复
CHP& CHP::operator *( const CHP & factor)const
{
CHP Mul;
......
return Mul ;
}
返回局部变量的引用,很可疑。

CHP & CHP::Pow也有类似问题,return res 也是局部变量的引用
lanhxg 2010-10-14
  • 打赏
  • 举报
回复
题目网址是:http://poj.org/problem?id=1001&lang=zh-CN
内容概要:本文介绍了如何利用 GitHub Copilot 辅助进行程序调试与 Bug 分析,强调 Copilot 不仅可用于代码生成,更是强大的代码分析与调试工具。文章详细阐述了 Copilot 在调试复杂问题、老旧项目维护和难以复现 Bug 场景下的优势,提出了“先分析、再修改”的四步流程:分析原因→评估风险→提出方案→修改代码,并推荐结合错误日志、用户操作等信息精准提问,提升 AI 回答质量。同时展示了如何通过 Copilot 增强调试能力,如自动加日志、异常保护、生成测试数据和性能分析。最后通过游戏拾取系统的实际案例,说明如何结构化描述问题以获得有效反馈。; 适合人群:具备一定开发经验,正在参与项目调试或维护工作的程序员,尤其是面对复杂逻辑、历史代码或难复现 Bug 的 1-3 年开发者;也适合希望提升 AI 协作能力的技术人员。; 使用场景及目标:①快速定位偶发性崩溃、数据异常等问题根源;②理解无文档或结构混乱的老代码模块;③优化调试流程,借助 AI 生成诊断建议、修复方案与测试用例;④构建更具健壮性的程序,提前发现潜在缺陷。; 阅读建议:学习者应结合自身项目中的真实问题,按照文中提供的结构化提问模板实践,逐步训练与 Copilot 的协作能力,重视问题描述的完整性与准确性,避免直接要求修改代码,优先通过分析提升对系统的理解。
内容概要:本文针对高精度电流控制下的永磁同步电机(PMSM)参数辨识难题,提出一种基于粒子群优化算法(PSO)的多参数辨识模型,并在Simulink环境中完成系统级仿真实现。研究旨在克服传统控制中因电机参数(如定子电阻、交直轴电感、永磁磁链等)随温度、负载变化而失配所导致的电流控制性能下降问题。通过构建以电流跟踪误差为核心的适应度函数,利用PSO算法全局寻优能力强的特点,实现对关键电机参数的在线或离线精确辨识。文中详述了PSO算法的实现机制、参数初始化策略、收敛判据设计以及与PMSM矢量控制系统的集成方法,验证了该方案在不同运行工况下的辨识精度、收敛速度与鲁棒性,显著提升了电流环的动态响应品质与稳态控制精度。; 适合人群:具备电机驱动控制、现代控制理论及优化算法基础,熟悉MATLAB/Simulink仿真平台,从事高性能PMSM控制系统研发的研究生、高校科研人员及自动化、电力电子领域的工程师;特别适合正在开展参数自适应、智能控制算法应用等相关课题的研究者。; 使用场景及目标:①应用于高端制造装备、电动汽车驱动系统、精密伺服系统等对电流控制精度要求严苛的场合;②解决实际工程中因电机温升、老化等因素引发的参数漂移问题,提升系统长期运行稳定性;③作为智能优化算法与电机控制深度融合的教学案例,帮助理解PSO在复杂非线性系统参数辨识中的应用逻辑与实现路径。; 阅读建议:建议读者结合提供的Simulink仿真模型进行复现实验,重点剖析PSO算法模块与电机控制模型的接口设计、适应度函数的构建原则及参数敏感性分析方法,可进一步尝试引入其他先进优化算法(如GWO、HHO)进行性能对比,以深入掌握不同智能算法在工程辨识问题中的适用性与优劣。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧