【题目链接】

ybt 1171:大整数的因子
OpenJudge NOI 1.6 13:大整数的因子

【题目考点】

1. 高精度

考察:高精模低精
高精度计算讲解

【解题思路】

先把参与运算的数字当成低精度数字,来解决这个问题,不难写出代码:

int main()
{int k, c;cin >> c;bool hasK = false;for(int k = 2; k <= 9; ++k){if(c % k == 0){cout << k << ' ';hasK = true;}}if(hasK == false)cout << "none";return 0;
}

本题中,c是高精度数字,k范围为2~9,仍然是低精度数字。那么只需要把c%k==0改写为高精模低精,即可解决该问题。

【题解代码】

解法1:函数+数组

#include<bits/stdc++.h>
using namespace std;
#define N 35
//将字符数组转化为数字数组 数字数组从第1位置到第len位置,从低位到高位保存各位数字,第0位置保存数字位数
void toNum(char s[], int a[])
{a[0] = strlen(s);for(int i = 1; i <= a[0]; ++i)a[i] = s[a[0] - i] - '0';
}
//高精模低精
int Mod(int a[], int b)
{int x = 0;for(int i = a[0]; i >= 1; --i)x = (x * 10 + a[i]) % b;return x;
}
int main()
{int n, k, c[N] = {}; char s[N];bool hasK = false;cin >> s;toNum(s, c);for(k = 2; k <= 9; ++k){if(Mod(c, k) == 0){cout << k << ' ';hasK = true;}}if(hasK == false)cout << "none";return 0;
}

解法2:类中重载运算符

#include <bits/stdc++.h>
using namespace std;
#define N 35
struct HPN
{int a[N];//数字数组HPN(){memset(a, 0, sizeof(a));}HPN(char s[]){memset(a, 0, sizeof(a));int len = strlen(s);for(int i = 0; i < len; ++i)a[len - i] = s[i] - '0';a[0] = len;}int operator % (int b) //高精模低精{int x = 0;for(int i = a[0]; i >= 1; --i)x = (x * 10 + a[i]) % b;return x;}
};
int main()
{char s[N];cin >> s;HPN c(s);//高精数字c bool hasK = false;for(int k = 2; k <= 9; ++k){if(c % k == 0)//高精模低精 {cout << k << ' ';hasK = true;}}if(hasK == false)cout << "none";return 0;
}

信息学奥赛一本通 1171:大整数的因子 | OpenJudge NOI 1.6 13:大整数的因子相关推荐

  1. 信息学奥赛一本通 1063:最大跨度值 | OpenJudge NOI 1.5 06:整数序列的元素最大跨度值

    [题目链接] ybt 1063:最大跨度值 OpenJudge NOI 1.5 06:整数序列的元素最大跨度值 [题目考点] 1. 求n个数中的最大值 方法1: 设置临时最大值变量mx,mx的初始值应 ...

  2. 信息学奥赛一本通 1227:Ride to Office | OpenJudge NOI 4.6 2404:Ride to Office

    [题目链接] ybt 1227:Ride to Office OpenJudge NOI 4.6 2404:Ride to Office 原题是英文题,虽说两题题意相同,但一本通网站没有对该问题进行直 ...

  3. 信息学奥赛一本通 1223:An Easy Problem | OpenJudge NOI 4.6 1455:An Easy Problem

    [题目链接] ybt 1223:An Easy Problem OpenJudge NOI 4.6 1455:An Easy Problem [题目考点] 1. 数制 2. 枚举 [解题思路] 解法1 ...

  4. 信息学奥赛一本通 1038:苹果和虫子 | OpenJudge NOI 1.3 15 | OpenJudge NOI 1.4 21

    [题目链接] ybt 1038:苹果和虫子 OpenJudge NOI 1.3 15:苹果和虫子 OpenJudge NOI 1.4 21:苹果和虫子2 [题目考点] 1. if-else语句 if( ...

  5. 信息学奥赛一本通 1218:取石子游戏 | OpenJudge NOI 2.5 6266:取石子游戏

    [题目链接] ybt 1218:取石子游戏 OpenJudge NOI 2.5 6266:取石子游戏 [题目考点] 1. 博弈:完全信息博弈 博弈树: 博弈树的结点对应于某一个棋局,其分支表示走一步棋 ...

  6. 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命

    [题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...

  7. 信息学奥赛一本通 1119:矩阵交换行 | OpenJudge NOI 1.8 01 矩阵交换行

    [题目链接] ybt 1119:矩阵交换行 OpenJudge NOI 1.8 01:矩阵交换行 [题目考点] 1. 二维数组 2. 交换两个int型整数 使用<iostream>中的sw ...

  8. 信息学奥赛一本通 1116:最长平台 | OpenJudge NOI 1.9 12:最长平台 | 洛谷 B2097 最长平台

    [题目链接] ybt 1116:最长平台 OpenJudge NOI 1.9 12:最长平台 洛谷 B2097 最长平台 [题目考点] 1. 数组中做统计 2. 求最大值 [解题思路] 解法1:遍历并 ...

  9. 信息学奥赛一本通 1080:余数相同问题 | OpenJudge NOI 小学奥数/2.1 7647:余数相同问题

    [题目链接] ybt 1080:余数相同问题 OpenJudge NOI 2.1 7647:余数相同问题 OpenJudge NOI 小学奥数 7647:余数相同问题 [题目考点] 1. 枚举 [解题 ...

最新文章

  1. 《UX最佳实践:提高用户体验影响力的艺术 》一3.6 总结
  2. [ 1001] 动态开辟二维数组的说明
  3. java(eclipse)和数据库(mysql)的连接
  4. python知识点智能问答_基于知识图谱的智能问答机器人
  5. MYSQL学习笔记三:日期和时间函数
  6. HAProxy+Hive构建高可用数据挖掘集群
  7. Stack Overflow 2017 开发者调查报告(程序员必看)
  8. 电子商务发展的中心主体与边缘业务
  9. linux根目录下各子目录的作用
  10. 什么是即时通讯系统?
  11. IOS13以上抓https包,基于win7+Fiddler,操作记录
  12. Spring boot 集成邮件通知及线程异步发送
  13. 山东科技大学计算机篮球,山东科技大学第十七届学生男子篮球赛开幕
  14. python 查看所有变量_CentOS6.查看 Python中变量的信息(名称类型内容等)
  15. android shell卸载应用程序,android系统软件卸载_adb配置使用
  16. Jlink仿真sw调试方式的4线连接方式
  17. 光学定位与追踪技术_光学跟踪技术定位精准罗技M90鼠标仅32
  18. 导致cannot access memory的原因是什么?
  19. 新建域用户“User Profile Service 服务未能登录,无法加载用户配置文件”
  20. linux kmplayer字幕乱码解决

热门文章

  1. OpenSSH 远程拒绝服务漏洞
  2. GNU make manual 翻译( 一百五十五)
  3. 手机连接电脑wifi
  4. 《人生不设限》力克的生命故事
  5. ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
  6. 西安交大送大一新生这本书,你读过吗?12本有趣有料的科普书盘点
  7. 人人都可以创造自己的AI:深度学习的6大应用及3大成熟领域
  8. Google大佬手把手教你从数据中挖掘价值:好产品是怎样炼成的
  9. 深入线程池的问题连环炮
  10. RedisJson 是什么?比ES快 500 倍?