首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求同构数 [已结帖,结帖人:zhoufuguo8802]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhoufuguo8802
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-19 16:56:53 楼主
    Description
    同构数 正整数n若是它平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数。376*376=141376,所以376也是.要求写程序找出10000(包括)以内的所有同构数.
    请给位高手给出代码(说明:请用C++)
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • veloting
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 16:57:491楼 得分:0
    你写作业啊?呵呵
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • veloting
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 16:58:252楼 得分:0
    按版规要删帖的,不过现在貌似不是很严格啊- -
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ouyh12345
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-08-19 17:04:223楼 得分:5
    1、找到比这个数大的最小的10的n次幂M
    2、计算平方
    3、对平方数求M的模
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • veloting
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 17:20:014楼 得分:5
    C/C++ code
    #include <iostream> #include <cmath> using namespace std; int main() { for(int i = 0; i < 10000; i++) { int i2 = i*i; for(int j = 0; j < 5; j++) { int temp = pow(10.0,j); if(i/temp == 0) { if(i%temp == i2%temp) { cout << i << endl; break; } } } } system("pause"); return 0; }

    这样应该差不多了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tjianli
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 18:37:575楼 得分:5
    #include "stdafx.h"
    #include <iostream>

    using namespace std;

    int getlen(int number)//得到数字的长度
    {
    int cnt;
    cnt = 1;
    while(number / 10)
    {
    number /= 10;
    ++cnt;
    }

    return cnt;
    }

    int com(int number)
    {
    int tmp1;
    int tmp2;
    int len;

    tmp1 = 1;
    len = getlen(number);//得到数字的长度
    while(len)
    {
    tmp1 *= 10;
    --len;
    }
    tmp2 = number * number - number;
    return tmp2 % tmp1;
    }

    int main()
    {
    const int MAX_NUMBER = 10000;

    for(int i = 1 ; i < MAX_NUMBER ; ++i)
    {
    if(!(com(i)))
    {
    cout < < i < < "  " < < i * i < < endl;
    }
    }

    system("pause");
    return 0;
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqls_xqls
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 22:43:146楼 得分:5
    #include <iostream.h>
    #include <math.h>
    #include <iomanip.h>

    void main()
    {
    int i = 1;
    for(i;i <= 10000;i++)
    {
    int j = 1;
    while(i/pow(10,j) >= 1)
    j++;
    if((int)pow(i,2)%(int)pow(10,j) == i)
    cout < <i < <"    " < <i*i < <endl;
    }
    }
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved