帮忙测试下代码?结果总是不对

funnyone funnyone 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
题:
给一个整数n,重复做他每个子数的平方和。开心数是当你重复这个过程他最后会得到1。例如,82
8*8 + 2*2 = 64 + 4 = 68, repeat:
6*6 + 8*8 = 36 + 64 = 100, repeat:
1*1 + 0*0 + 0*0 = 1 + 0 + 0 = 1 (happy! :)
注意数字在意些基数时可能是开心数,另一些基数时可能不是开心数。例如基数82在基数3的情况下不是开心数。(10001)
你是世界上顶尖的数字侦探。一些基数混在一起。(他们被组织)并且雇用你完成一个任务—找出最小的比一大的整数并且在所有的基数是开心数。
你是世界上顶尖的数字侦探。一些基数混在一起。(他们被组织)并且雇用你完成一个任务—找出最小的比一大的整数并且在所有的基数是开心数。
Input

Output

3
2 3
2 3 7
9 10
Case #1: 3
Case #2: 143
Case #3: 91


#include<iostream>
#include<vector>
#include<string>
#include<stdlib.h>
#include<sstream>
#include<time.h>
#include<list>
#include<algorithm>
using namespace std;
class Test{
private:
vector<int> receive;
int result;
public:
Test::Test(vector<int>& it):result(0),receive(it){};
bool happynum(string);
void process();
friend ostream& operator<<( ostream& out,const Test& test);
};

bool Test::happynum(string rec) //判断是否开心数
{
if(rec.size()==1&&rec[0]==1)
return 1;
else if(rec.size()==1&&rec[0]!=1)
return 0;
else
{ int result=0;
for(string::size_type size=0;size!=rec.size();++size)
result+=rec[size]*rec[size];
happynum(itoa(result,const_cast<char *>(rec.c_str()),10));}
}

void Test::process()
{
result=receive.back();
string str;
while(1)
{
int test1=0;
for(vector<int>::iterator itor=receive.begin();itor!=receive.end();++itor)
{
if(!happynum(itoa(result,const_cast<char *>(str.c_str()),*itor)))
break;
else ++test1;
}
if(test1==receive.size())
break;
else ++result;
}
}
ostream& operator<<( ostream& out,const Test& test)
{
out<<test.result<<flush;
return out;
}


int main()
{
int time;
cin>>time;
vector<Test> test;
cin.get();
for(int a=0;a!=time;++a)
{
string rec;
int x;
vector<int> receive;
getline(cin,rec);
istringstream stream(rec);
while(stream>>x)
receive.push_back(x);
test.push_back(Test(receive));
cin.get();
}
for(vector<Test>::iterator itor=test.begin();itor!=test.end();++itor)
{
itor->process();
cout<<"case #"<<itor-test.begin()+1<<": "<<*itor<<endl;
}

system("pause");
return 0;
}

...全文

相关推荐

boost::coroutine模块编写不对称链的测试程序

在第一个协程执行过程中,我们输出了当前协程的地址和循环次数,并在循环结束时切换到下一个状态。最后,我们返回0,结束程序的运行。通过学习本文示例代码,我们可以更好地掌握boost::coroutine模块的使用方法,进而编写高效的协程程序。boost::coroutine模块提供了基于C++语言的协程实现,可以帮助我们方便地编写高效的协程程序。在该函数中,我们定义了一个循环,输出当前协程句柄的地址以及循环次数,并在每次循环结束后通过调用协程句柄的operator()方法来使协程切换到下一个状态。

UIEdit

通信行业基于MongoDB的安全合规与性能优化:5G时序数据处理、可查询加密及窗口函数应用

内容概要:本文围绕MongoDB在通信行业的深度应用,系统讲解了可查询加密、时间序列集合、窗口函数与性能诊断四大核心技术。通过详实的代码案例,展示了如何利用可查询加密实现敏感数据合规存储与查询,使用时序集合高效处理5G网络KPI等高频写入场景,借助窗口函数进行经营指标的趋势分析,并结合explain()与查询分析器完成性能调优。文章还涵盖分片一致性检查、索引优化等运维实践,全面覆盖通信系统对安全、性能与扩展性的严苛要求。; 适合人群:具备一定数据库基础,从事通信行业研发、架构或运维工作1-3年的技术人员,尤其是参与5G网络监控、客户数据管理或大数据平台建设的相关人员。; 使用场景及目标:① 实现用户手机号、身份证等敏感信息的加密存储与等值查询,满足安全合规要求;② 构建高吞吐、低延迟的5G基站KPI时序数据存储与分析系统;③ 在数据库层直接完成滑动平均、累计求和等经营分析,减少应用层计算负担;④ 诊断慢查询、验证索引有效性,保障系统高性能运行。; 阅读建议:此资源强调理论与实战结合,建议读者在本地或测试环境部署MongoDB 7.0+版本,动手复现文中代码,重点关注schemaMap配置、时序集合参数选择与窗口函数语法细节,并结合explain执行计划理解底层优化机制,从而真正掌握通信级数据架构的设计精髓。

数智顾问

国央企创新负责人如何借助平台实现技术成果的高价值转化与资源精准配置?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?.docx

产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?

BIZKEEN

产业园区运营负责人如何提升园区内技术供需匹配的精准度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 4
收藏 已收藏
分享
返回顶部
funnyone
C++ 语言 65,214 成员 250,514 内容