1001 A+B Format测试点3,5,6,10,11

不适用toString而用除留取余法

测试点3,5,6,10,11在于中间有取到0或者不满三位数的情况

例如1000000 1000000 测试结果2,0,0

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    int a,b,s[1000],i=0;
    scanf("%d%d",&a,&b);
    int n = a+b;
    //printf("%d\n",n);
    if(n<0) {
        printf("-");
        n=-n;
    }
    do{
        s[i++] = n%1000;
        n/=1000;
    }while(n>0);
    bool isFirst = true;
    while(i-->0){
        if(isFirst){//最高三位的首部不输出0
            printf("%d",s[i]);
            isFirst = false;
        }
        else printf("%03d",s[i]);//输出000的关键
        if(i!=0) printf(",");
    }
    return 0;
}
 
1. 用循环语句形成fibonacci数列(30位) ```python a, b = 0, 1 for i in range(30): print(a, end=" ") a, b = b, a + b ``` 2. 利用函数+if定义分段函数,并利用循环结构输出在-3到6,步长为0.5的序列上各点对应的函数值。 ```python import math def f(x): if x < -2: return -1 elif x < 0: return x + 1 elif x < 2: return math.sqrt(4 - x ** 2) else: return 2 for x in range(-6, 12, 1): x /= 2 print("f({:.1f}) = {:.4f}".format(x, f(x))) ``` 3. 实现对Excel文件的读写 ```python import openpyxl # a) 读取默认数据,并删除大于100的数据(自行创建测试数据) wb = openpyxl.load_workbook("test.xlsx") sheet = wb.active for row in sheet.rows: for cell in row: if cell.value and type(cell.value) == float and cell.value > 100: cell.value = None # b) 读取特定工作表的数据 sheet = wb["Sheet2"] for row in sheet.rows: for cell in row: print(cell.value, end="\t") print() # c) 读取特定区域的数据 sheet = wb.active for row in sheet["B2:D4"]: for cell in row: print(cell.value, end="\t") print() # d) 保存数据到.xlsx文件 wb.save("test_updated.xlsx") ``` 4. 分别用if和switch语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。对超出百分制范围的成绩,给出错误提示信息。 ```python score = 75 # if语句实现 if score < 0 or score > 100: print("成绩输入错误") elif score >= 90: print("A") elif score >= 80: print("B") elif score >= 70: print("C") elif score >= 60: print("D") else: print("E") # switch语句实现(Python没有原生switch语句,使用字典模拟) grade = { 10: "A", 9: "A", 8: "B", 7: "C", 6: "D", 5: "E", 4: "E", 3: "E", 2: "E", 1: "E", 0: "E" } if score < 0 or score > 100: print("成绩输入错误") else: level = grade[int(score // 10)] print(level) ``` 5. 编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。 ```python import math def vector_stats(x): n = len(x) mean = sum(x) / n max_val = max(x) min_val = min(x) rms = math.sqrt(sum([i ** 2 for i in x]) / n) return mean, max_val, min_val, rms x = [1, 2, 3, 4, 5] print(vector_stats(x)) ``` 6. 编写一个函数,给出一个向量,生成如下范德蒙矩阵。 ```python def vandermonde(x): n = len(x) vdm = [] for i in range(n): row = [] for j in range(n): row.append(x[i] ** j) vdm.append(row) return vdm x = [1, 2, 3, 4, 5] vdm = vandermonde(x) for row in vdm: print(row) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值