您现在的位置是:主页 > news > 常州建设局网站打不开/时事新闻热点摘抄

常州建设局网站打不开/时事新闻热点摘抄

admin2025/4/28 22:42:31news

简介常州建设局网站打不开,时事新闻热点摘抄,淮南网备案查询,网站群建设代理强烈推荐,刷PTA的朋友都认识一下柳神–PTA解法大佬 本文由参考于柳神博客写成 柳神的CSDN博客,这个可以搜索文章 柳神的个人博客,这个没有广告,但是不能搜索 文章目录题目原文输入格式:输出格式:输入样例:输出样例:思路如下&am…

常州建设局网站打不开,时事新闻热点摘抄,淮南网备案查询,网站群建设代理强烈推荐,刷PTA的朋友都认识一下柳神–PTA解法大佬 本文由参考于柳神博客写成 柳神的CSDN博客,这个可以搜索文章 柳神的个人博客,这个没有广告,但是不能搜索 文章目录题目原文输入格式:输出格式:输入样例:输出样例:思路如下&am…

强烈推荐,刷PTA的朋友都认识一下柳神–PTA解法大佬

本文由参考于柳神博客写成

柳神的CSDN博客,这个可以搜索文章

柳神的个人博客,这个没有广告,但是不能搜索

文章目录

  • 题目原文
      • 输入格式:
      • 输出格式:
      • 输入样例:
      • 输出样例:
    • 思路如下:
    • 代码如下:
    • 欣赏时间.
    • 结尾

题目原文

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

输入格式:

输入在一行中依次给出 AB,中间以 1 空格分隔。

输出格式:

在一行中依次输出 QR,中间以 1 空格分隔。

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

思路如下:

创建一个结构体,用来保存这个高精度数.

typedef struct node {int x[1000];int len;//构造函数node() {memset(x, 0, sizeof(x));len = 0;}
}Number;

memset就是数组的初始化函数.把全部的x都初始化位0

方便计算.

每一位都是按照相应的顺序的.

如果是加减和乘建议逆序保存

就是 12345

数组里面的是 54321

如果是除法建议正序保存.除法比较特殊.

然后就是我们的计算了.

用一个余数r来计算.

能除就出去,然后替换新的余数r.

不能就继续保留余数r

举个例子.

12789/78

1可以去78吗? 不能 保留 c的这一位是0

12 可以吗? 不能 保留 c的这意味是0 余数现在是12

127可以吗 可以 c 的这一位是1 余数现在是49

一次循环直到最后.

代码如下:

#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
//大数字的结构体
typedef struct node {int x[1000];int len;//构造函数node() {memset(x, 0, sizeof(x));len = 0;}
}Number;
// 读入大数字
Number scan(Number,string );
Number divide(Number , int,int &);
int main(void) {Number a;int b;string sa;cin >> sa>>b;a = scan(a, sa);int r = 0;a = divide(a, b, r);for (int i = a.len-1; i >= 0; --i) {cout << a.x[i]  ;}cout << " " << r;return 0;
}//读入高精度数
Number scan(Number a,string b) {a.len = b.length();int lenth = b.length()-1;for (auto i: b) {a.x[lenth] = i - '0';lenth--;}return a;
}
Number divide(Number a, int b,int &rmd) {Number c;c.len = a.len;for (int i = a.len - 1; i >= 0; i--) {rmd = rmd * 10 + a.x[i];	//和上一位遗留的余数组合if (rmd < b)c.x[i] = 0;		//不够除,该位为0else {						//够除c.x[i] = rmd / b;		//商rmd= rmd % b;}}while (c.len - 1 >= 1 && c.x[c.len - 1] == 0) {c.len--;					//去除高位的0,同时至少保留一位最低位.}return c;
}

我的代码是copy算法笔记的.

国际惯例,柳神的代码的

欣赏时间.

#include <iostream>
using namespace std;
int main() {string s;int a, t = 0, temp = 0;cin >> s >> a;int len = s.length();t = (s[0] - '0') / a;//为了防止,高精度数是一个个位数.if ((t != 0 && len > 1) || len == 1)cout << t;temp = (s[0] - '0') % a;for (int i = 1; i < len; i++) {t = (temp * 10 + s[i] - '0') / a;cout << t;temp = (temp * 10 + s[i] - '0') % a;}cout << " " << temp;return 0;
}

结尾

如果这篇文章对你有张帮助的话,可以用你高贵的小手给我点一个免费的赞吗

相信我,你也能变成光.

在这里插入图片描述

如果你有任何建议,或者是发现了我的错误,欢迎评论留言指出.