精华内容
下载资源
问答
  • //计算列表列,并标识从第几位开始,个位为第一位//表格ID,要计算的列的CLASS//合计的列的CLASS为计算列CLASS+"_count"//如果合计格input就写到input//作者:敖士伟 ikmb@163.comfunction GetCountPoint(tid, col...

     

    如:

    展开全文
  • 两个数的四则运算4.C++中输出几位小数5.一个数字的个、十、百、千位数的取出。6.一堆数字检查位数,并正序逆序输出总结 前言 在自己的博客里新开一栏,上一栏实验室里需要用到的知识,这个就是我喜欢的额外的...

    系列文章目录

    第一章 C/C++语言入门之数字的处理



    前言

    在自己的博客里新开一栏,上一栏是实验室里需要用到的知识,这个就是我喜欢的额外的编程学习。再唠叨一下,重新开一栏,很开心,这不证明我是个博学的人?看官们不要着急否定,暂往下看~~~


    一、为什么学习C/C++语言

    其实我也想学习比较简单的JAVA语言Python语言,而且似乎就业机会还很多,薪资也很高。学习C/C++的语言呢,其实是为了在实验做程序的辅助,另外我是软硬结合的本科出身,在本科也有一定的C基础,就算再次一点,也可以往单片机设计上就业吧。不亏不亏,学习C++还可以学习到硬件的知识。编程语言没有歧视链,程序员有…
    我的就业方向想要Linux 系统上的C/C++设计或者嵌入式软件设计。这样的话以后我还会单独开一个Linux的学习栏,想想有点激动啊!

    二、C/C++语言入门第一关:数字处理

    1.三个数比较最大值最小值

    这个代码让刚入门的我惊艳到了,处理的算法很高档!

    #include <iostream>
    using namespace std;
    int main ()
    {
    	int x1,x2,x3,max,min;
    	cin>>x1>>X2>>x3;
    	min=max=x1;
    	if(x2>max)
    		max=x2;
    	if(x3>max)
    		max=x3;
    	if(min<x2)
    		min=x2;
    	if(min<x3)
    		min=x3;
    	cout<<max<<endl;
    	cout<<min<<endl;
    	return 0;
    }
    
    //另外一种的比较最大值或者最小者的代码
    (a>b?a:b)>c?(a>b?a:b):c
    

    2.判断素数

    素数:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

    int prime(int n)
    {
    	int i;
    	for(i=2;i<n;i++)
    	{
    		if(n % i==0)
    		{
    			cout<<"不是素数";
    			break;
    		}
    		else
    		{
    			cout<<"是素数";
    			break;
    		}
    	}
    return 0;
    }
    

    3.两个数的四则运算

    把这个四则运算的程序也总结的原因是这里用到了switch case 的语句,并不常用,但需要知道!

    int main()
    {
    	int a,b,d;
    	char c;
    	cout<<"请输出一个运算符";
    	cin>>c;
    	cout<<"请输出两个数";
    	cin>>a>>b;
    	switch(c)
    	{
    	case'+':
    		d=a+b;break;
    	case'-':
    		d=a-b;break;
    	case'*':
    		d=a*b;break;
    	case'/':
    		d=a/b;break;
    	default:break;
    	}
    	cout<<d<<endl;
    	return 0;
    }
    

    4.C++中输出几位小数

    C语言中输出用的是printf函数,在这里可以方便的让输出的值进行调整,然而C++中的输出值只有cout这个函数,很难让输出值进行处理。所以需要另外的输出小数函数来处理。

    #include <isotream>
    #include <iomanip>
    double max(int a,int b,intc)
    {
    	return ((a>b?a:b)>c?(a>b?a:b):c);
    }
    int main ()
    {
    	int a,b,c;
    	cin>>a>>b>>c;
    	cout.setf(iso::fixed);
    	cout<<setprecision(3)<<max(a,b,c)<<endl;
    	return 0;
    }
    

    5.一个数字的个、十、百、千位数的取出。

    对于一个数字的处理肯定少不了个百千位数的取出

    a=num/1000;        //千位数的取出
    b=num/100%10;     //百位数的取出
    c=num/10%10;      //十位数的取出
    d=num%10;         //个位数的取出
    

    6.一堆数字检查位数,并正序逆序输出

    用数组装数字,用循环输入输出数字

    int x[5],i,count=0;
    for(i=0;i<5;i++)
    {
    	int temp=0;
    	temp=getchar();  //temp临时存储数字字符的ASCII码
    	if(temp==10)break; //输入换行符后跳出循环
    	count++;
    	x[i]=temp-48;
    }
    cout<<count<<endl;
    for(i=0;i<count-2;i++)    //正序输出
    cout<<x[i];
    for(i=count-1;i<=0;i--)
    cout<<x[i];
    return 0;
    
    

    总结

    以上就是要讲的内容了,是一些基本的数字处理程序,不过通过这些程序,我才渐渐熟悉编程的一些细节,对于新手,或者对于我来说,刚入门的成功的满足感会给我更大的动力去追求难度更大的题目。在C语言网上编程练习,之后会把基础打的差不多之后会刷Leetcode上的题!

    展开全文
  • 最近在啃《疯狂Java讲义》,看到四章有一道题RT,“折磨”了我这只菜鸟两天时间,到现在终于有点样子了,先记录下来,由于此时没有...主要思路为:中国的数字每四一节,一个四位数可以转化为几千几...

     最近在啃《疯狂Java讲义》,看到第四章有一道题RT,“折磨”了我这只菜鸟两天时间,到现在终于有点样子了,先记录下来,由于此时没有看书后面的章节,很多知识点还不甚清楚(谁让我在学校上Java的时候水了一波呢,0.0),所以等以后知识点了解得更多的时候再回来重新理一理逻辑,各位看官若觉得有简化的逻辑可tell me,3q~

     主要思路为:中国的数字是每四位一节,一个四位数可以转化为几千几百几十几,至于后面加什么单位不确定,但如果这四位数字出现在1~4位,则后面添加单位元;如果这四位数字出现在5~8位,则后面添加单位万;如果这四位数字出现在9~12位,则后面添加单位亿;暂不考虑多于12位的情况。

     鉴于此,创建一个3×4的二维数组(初始化值为-1),每四位数存一行,从小到大依次存放,举个栗子123456789159,存为:

    a[0] 9 1 5 9 添加单位:元

    a[1] 5 6 7 8 添加单位:万

    a[2] 1 2 3 4 添加单位:亿
     ↑ ↑ ↑ ↑

     仟×

    具体单位添加见上述栗子,再次就不文字赘述辣~

    先上完整代码叭,粗陋之处多多见谅!

    package Chapter4;
    
    public class Num2Rmb {
    	private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    	private String[] unitArr = {"拾","佰","仟"};
    	private String[] bigUnitArr = {"元","万","亿"};
    	 
    	private String String2Array(String numStr) {
    		String result = "";
    		//定义二维数组
    		int[][] numArr = new int[3][4];
    		//初始化二维数组所有值为-1
    		for(int i = 0; i < 3; i++) {
    			for(int j = 0; j < 4;j++) {
    				numArr[i][j] = -1;
    			}
    		}
    		//待转换字符串长度
    		int numLen = numStr.length();
    		int index = numLen - 1;
    		//当前待转换字符串下标值
    		for(int i = 0; i <= numLen / 4;i++) {
    			for(int j = 3; j >= 0; j--) {
    				if(index >= 0) {
    					numArr[i][j] = numStr.charAt(index--) - 48;
    				}
    				else {
    					break;
    				}
    			}
    		}
    //		打印输出存好数据的二维数组
    		for(int i = 0;i < 3;i++) {
    			for(int j = 0;j < 4;j++) {
    				System.out.print(numArr[i][j]);
    			}
    			System.out.println();
    		}
    		for(int i = (numLen - 1) / 4;i >= 0;i--) {
    			for(int j = 0; j < 4 ; j++) {
    				int num = numArr[i][j];
    				//当前位未存入数字
    				if(num == -1) {
    					continue;
    				}
    				//当前位为0
    				else if(num == 0) {
    					//首位为零 或 上一位不为零且该位不是第四位
    					if(j == 0 || (j != 3 && numArr[i][j-1] != 0))
    						result += hanArr[0];
    				}
    				//当前位不为0
    				else if(num != 0){
    					//当前位不是最后一位
    					if(j != 3) {
    						result += hanArr[num] + unitArr[2 - j];
    					}
    					else {
    						result += hanArr[num];
    					}
    				}
    			}
    //			每四位数一次外循环,
    //			若该层四个数均为0,则不加单位
    //			循环完毕加上每四位数的大单位
    			if(numArr[i][0] == 0 && numArr[i][1] == 0 &&
    					numArr[i][2] == 0 && numArr[i][3] == 0){
    				continue;
    			}
    			result += bigUnitArr[i];
    		}
    		return result;
    	}
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Num2Rmb nr = new Num2Rmb();
    		//默认输入数据位数不超过12位
    		System.out.println(nr.String2Array("800001504"));
    	}
    
    }
    

    1.先将需要用到的中文字存到对应的数组,如下:

    private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    	private String[] unitArr = {"拾","佰","仟"};
    	private String[] bigUnitArr = {"元","万","亿"};

    2.创建3×4二维数组,用来存放输入的一串整型数字,并初始化数组值为-1:

    //定义二维数组
    		int[][] numArr = new int[3][4];
    		//初始化二维数组所有值为-1
    		for(int i = 0; i < 3; i++) {
    			for(int j = 0; j < 4;j++) {
    				numArr[i][j] = -1;
    			}
    		}

     3.将测试的整形字符串存入整型二维数组:

    //待转换字符串长度
    		int numLen = numStr.length();
    		//待转换字符串最大下标值
    		int index = numLen - 1;
    		//当前待转换字符串下标值
    		for(int i = 0; i <= numLen / 4;i++) {
    			for(int j = 3; j >= 0; j--) {
    				if(index >= 0) {
    					numArr[i][j] = numStr.charAt(index--) - 48;
    				}
    				else {
    					break;
    				}
    			}
    		}

     4.开始读数,难点在于“0”值的讨论:

     我的思路是:1)先从存有数的那一行开始依次遍历一行内四列的数值,若为-1则continue,意思是直接跳到那一行中存有

    数值的那列去。

     2)讨论当前数num的值,主要分为0和!0的情况。如果当前数num为0,此时开始讨论当前数所处位置,若处于首位或不

    在末位且前一位不为零的情况,则需在输出的字符串result中加上hanArr[0],即“零”;如果当前数num不为0,则如书中代码

    所列,正常转换成中文就行,但需注意,若当前数为最后一位不添加unitArr[]数组中的单位。

     3)遍历完一行后,开始外层循环(注意外循环是从大到小遍历),此时需要判断一个情况:如果该行四个数均为0,则习惯

    读法是不添加单位。

    for(int i = (numLen - 1) / 4;i >= 0;i--) {
    			for(int j = 0; j < 4 ; j++) {
    				int num = numArr[i][j];
    				//当前位未存入数字
    				if(num == -1) {
    					continue;
    				}
    				//当前位为0
    				else if(num == 0 && (j == 0 || (j != 3 && numArr[i][j-1] != 0))) {
    					result += hanArr[0];
    					//首位为零 或 上一位不为零且该位不是第四位
    //					if(j == 0 || (j != 3 && numArr[i][j-1] != 0))
    //						result += hanArr[0];
    				}
    				//当前位不为0
    				else if(num != 0){
    					//当前位不是最后一位
    					if(j != 3) {
    						result += hanArr[num] + unitArr[2 - j];
    					}
    					else {
    						result += hanArr[num];
    					}
    				}
    			}
    //			每四位数一次外循环,
    //			若该层四个数均为0,则不加单位
    //			循环完毕加上每四位数的大单位
    			if(numArr[i][0] == 0 && numArr[i][1] == 0 &&
    					numArr[i][2] == 0 && numArr[i][3] == 0){
    				continue;
    			}
    			result += bigUnitArr[i];
    		}

     

    展开全文
  • 10.29 考试总结

    2019-09-30 00:54:38
    大概脑补一下还是能算出来f(x)最大也就是9*位数就可以将整体的循环控制在几千...... b 设\(dp[i][j][k][0/1]\) 表示当前字符串s 到了i ,字符串t 到了j ,目前一共 选出了k 个子串,...

    10.29 考试总结

    a

    咋一看是暴力跑循环,实际上还是暴力循环。只不过根据题目意思,实际上公式\(f(x) + x = n\)而这个f(x)就是x各个位的和。大概脑补一下还是能算出来f(x)最大也就是9*位数就可以将整体的循环控制在几千......


    b

    \(dp[i][j][k][0/1]\) 表示当前字符串s 到了第i 位,字符串t 到了第j 位,目前一共
    选出了k 个子串,s[i] 与t[j] 是否都被选择的最大长度。
    考虑s[i] 与t[j] ,如果我们不将它们加入选择的k 个子串,那么:
    \[dp[i][j][k][0] = max(dp[i][j][k][0],max(dp[i − 1][j][k][0], dp[i − 1][j][k][1]))\]
    \[dp[i][j][k][0] = max(dp[i][j][k][0],max(dp[i][j − 1][k][0], dp[i][j − 1][k][1]))\]
    如果s[i] = t[j] ,且我们将它们加入选择的k 个子串,那么:
    \[dp[i][j][k][1] = max(dp[i][j][k][1], dp[i − 1][j − 1][k][1] + 1)\]
    \[dp[i][j][k][1] = max(dp[i][j][k][1],max(dp[i − 1][j − 1][k − 1][0], dp[i − 1][j − 1][k − 1][1]) + 1)\]

    实际上还真不会树形DP,然后连着考了自然就是连着炸.....

    c

    暴力写法实际上还是很好实现的最后快考完的时候才看懂题目,所以还是没有写出来。本身正解好像还是暴力,只不过通过预处理来降低一部分复杂度....

    总结

    这套题作为一套给同学们增长信心的题,难度中等,码量偏低,解法自然,是一套
    不错的练手题。

    可能是我太菜了

    转载于:https://www.cnblogs.com/rendex/p/9876872.html

    展开全文
  • 一个同模取余的问题,我们可以先用一个数组把那个大整数装起来,然后对数组中的每一个元素取余并乘以它的进制把它加到它...但是在倒数元素取余之后,到底乘以10,100,还是1000由最后一个元素的位数来决定
  • 幼儿园毕业时,女儿能做千位数的加减法,认识的字上千,会写的有百,英语通过口语2星,且7过7.顺理成章的进了一个不错的小学,还考进了课后的提高班里,这个提高班只学两样,英语,奥数 一年级,每周语文数学英语都有一...
  • - 我想分两步走,一步算出几位数字没问题, 二部通过取余数分别取出个十百位数字 - 取余数失败, position数组中所有赋值都零 - 我看了一晚上也没研究明白, 求大神指点, 感激不尽 ```c #include ...
  • 心想那就一多名吧,结果二天早上起来发现C题被hack掉了。。。  说多了都泪呀。。。 A. Vanya and Cards 题意:有n张标有整数的牌,求至少需要张数字范围在[-x,x]以内的牌,使得连同那n张牌的数字...
  •  3 逆序数位数的情况  4 三阶幻方中,还存在一些互为逆序数的特殊性质  6章 错误的猜想选介  6.1 费马素数猜想  1 费马素数(公式)的来由  2 欧拉说不  3 一石激起千层浪  4 高歌攀登一插曲  6.2 为...
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    其中,m和n都整数,m指定总位数,n指定小数点后保留几位,如果m或n不足,则按实际位数输出。 例1:指定小数点后保留2位,其余位四舍五入: %.2f 3.14159 = 3.14 例2:指定全部5位,且小数点后保留3位,其余位...
  • 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉...
  • 4位数码管的相同段并联在一起,由一个8I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字码控制,即数码管显示的字形由单片机I/O口输出的字形码确定,而哪个数码管...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉...
  • 0-9还是以数字形式输出,十百万分别用它们的拼音的一个字母的大写表示,即为S、B、Q、W。 样例输入 5 0 10 203 1008 12345 样例输出 0 1S 2B03 1Q08 1W2Q3B4S5 我的程序: #include #include ...
  • Protel DXP 是第一套完整的板卡级设计系统,真正实现在单个应用程序中的 集成。设计从一开始的目的就是为了支持整个设计过程,Protel DXP 让你可以 选择最适当的设计途径来按你想要的方式工作。Protel DXP PCB 线路...
  • 这份报告以国内25个省区市的近200家规模较大的餐饮企业数据为基础,涉及餐馆万家,总餐位数上百万,主要对象国内餐饮行业中各业态、各区域的代表性企业和领军企业。根据《2019年餐饮业年度报告》的数据(截至...
  • SQL语法大全

    2014-03-30 11:00:11
    以上个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 ------------------------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset ...
  • 市面上做iOS软件开发培训的公司都获取高额利润的公司,学员收费竟高达五位数以上,有经验的开发者花一天时间做一个非常小的iPhone或者iPad软件就可以轻松赚取百到几千美元。  本书的目的让初学者能够系统地...
  • eas供应链dep案例集

    2017-11-18 22:32:39
    单据操作控制修改 EASSCMA1P0055 收款单的流入预算项目值从一行携带 应付单生成的收款单的流入预算项目不能粘贴,以前都可以粘贴的,但是现在不行了,一个收款单分录有几千条,如果一个一个去选择要很长时间 1) ...
  • 13.22 精确到分之一秒 13.23 离开某天的时间 13.24 判断两个字符串日期的大小 13.25 显示登录时间 13.26 中文日期样式(一) 13.27 中文日期样式(二) 13.28 状态栏动态显示时间 13.29 页面访问时间限制 13.30 显示...
  • 13.22 精确到分之一秒 13.23 离开某天的时间 13.24 判断两个字符串日期的大小 13.25 显示登录时间 13.26 中文日期样式(一) 13.27 中文日期样式(二) 13.28 状态栏动态显示时间 13.29 页面访问时间限制 13.30 显示...
  • 数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 * 来代替。相关阅读: 大厂也在用的 6种 数据脱敏方案,严防泄露数据的 “内鬼” 【进阶之路】基于...
  • 数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 * 来代替。相关阅读: 大厂也在用的 6种 数据脱敏方案,严防泄露数据的 “内鬼” 【进阶之路】基于...
  • 数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形,比如我们把手机号、身份证号某些位数使用 * 来代替。相关阅读: 大厂也在用的 6种 数据脱敏方案,严防泄露数据的 “内鬼” 【进阶之路】基于...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

千位数是第几位