1.删除排序数组中的重复项
描述

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

例如: 给定数组 nums = [1,1,2]

返回 2

测试样例

输入:[1,1,2] 期望输出:2
第一种思路:
直接利用js特定函数进行删除,不过要注意如果两数相等时候,i的值不用变化,如果不相等,i的值才向前一位
代码如下:
/**

  • @param arr Array
  • @return Number

*/
var Solution = function(arr){

for(var i=1;i<=arr.length;){
    if(arr[i]===arr[i-1]){
        arr.splice(i,1)
    }else{
        i++
    }
}
return arr.length

};

第二种思路:
比较简单,但是有点难想,第一个元素如果和后面那一个一样只记一个即count++,最后用总长度减去count
例如:[1,1,2,2,3,3],经过运算后count的值等于3,总长度等于6,6-3=3就是我们所要的结果
代码如下:
/**

  • @param arr Array
  • @return Number

*/
var Solution = function(arr){

var count=0
var a=arr.length
    for(var j=0;j<a-1;j++)
    {
        if(arr[j]===arr[j+1])
        {
            count++
        }
    }
return a-count

};
2.贷款计算
分析:这道题本身不难,但是考察阅读能力,值得一做
题目描述
针对等额本金还款模式的客户,写一个程序按顺序输入贷款总额(单位为万元)、月利率、贷款总月数,输出第一个月客户还款金额(单位为元,取整数)。
等额本金计算公式如下:
每月还款金额= (贷款本金/ 还款总月数)+(本金 - 已归还本金累计额)×每月利率
输入
依次输入贷款总额(整数,单位:万元)、月利率(浮点数)、贷款总月数(整数)
输出
月还款金额(取整数,单位:元)
样例输入
500 0.004 360
样例输出
33888
代码如下:

include <stdio.h>

int main(void)
{

int a,b;
double l;
scanf("%d%lf%d",&a,&l,&b);
printf("%d",(int)(((1.0*a/b)+a*l)*10000));
return 0;

}
3.总结一下c语言输出格式吧
(1)换行输出n;
(2)数字8进制输出%o;16进制%x,如果要带前缀的话就多加一个#,如:%#o
(3)浮点数保留小数 %.xf ,这个x就是你要保留的小数位数
(4)占位大小的话就是 %4f ,简单来说就是写在小数点前面。
(5)左右对齐, %-4f 就是左对齐,不写负号就默认右对齐