首页 > 编程语言 >编程打卡:C语言趣味编程习题做

编程打卡:C语言趣味编程习题做

时间:2023-04-17 18:14:58浏览次数:40  
标签:进制 -- 编程 int num 打卡 include 习题

编程打卡:C语言趣味编程习题做

数制转换

问题描述

给定一个M进制的数x,实现对x向任意非M进制的数的转换。

设计思路

输入M进制的数x,将x转换为十进制数,再将十进制数转换为任意非M进制的数。

流程图

graph A["开始"] --> B["输入M进制的数x"] -->C["将x转换为十进制数"] --> D["将十进制数转换为任意非M进制的数"] --> E["输出"] --> F["结束"]

代码实现

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int num2dec(int m,string num)   {
    int tmpm = 1;
    int sum = 0;
    for (int i = num.length()-1; i >= 0; i--) {
        if (num[i] >= '0' && num[i] <= '9') {
            sum += (num[i] - '0') * tmpm;
            tmpm *= m;
        }
        else if (num[i] >= 'A' && num[i] <= 'F') {
            sum += (num[i] - 'A' + 10) * tmpm;
            tmpm *= m;
        }
        else if (num[i] >= 'a' && num[i] <= 'f') {
            sum += (num[i] - 'a' + 10) * tmpm;
            tmpm *= m;
        }
    }
    return sum;
}
string dec2num(int m,int num) {
    string res;
    while (num) {
        int tmp = num % m;
        if (tmp >= 0 && tmp <= 9)   {
            res += tmp + '0';
        }
        else {
            res += tmp - 10 + 'A';
        }
        num /= m;
    }
    reverse(res.begin(),res.end());
    return res;
}
int main()  {
    int m,t;
    cin >> m >> t;
    string num;
    cin >> num;
    cout << dec2num(t,num2dec(m,num));
}

运行结果

输入

8 16
1234

输出

29C

输入

16 10
ff

输出

255

个人所得税问题

问题描述

编写程序,计算个人所得税。

设计思路

用数组存储不同工资阶段区间以及个人所得税率,根据输入的金额,循环判断来计算个人所得税

流程图

graph A[开始] --> B[输入工资] --> C{工资>3500}; C -- No --> D[输出个人所得税为0] --> E[结束]; C -- Yes --> F[i = 0] --> G{"工资>个税[i].min?"} -- Yes --> H{"工资<=个税[i].max?"} -- Yes --> I[计算输出个人所得税] --> E; H -- No --> J[i++] --> G;

代码实现

#include <iostream>
#include <climits>
using namespace std;
struct zone {
    int min;
    int max;
    double rate;
};
struct zone tax[] = {{0,1500,0.03},{1500,4500,0.10},{4500,9000,0.20},{9000,35000,0.25},{35000,55000,0.30},{55000,80000,0.35},{80000,INT_MAX,0.45}};
int main () {
    double payTax = 0,salary;
    cin >> salary;
    if (salary <= 3500)
        cout << 0 << endl;
    else {
        salary -= 3500;
        for (struct zone i : tax)   {
            cout << salary << " " << i.min << " " << i.max << " " << i.rate << endl;
            if (salary > i.max) {
                payTax += (i.max - i.min) * i.rate;
            }
            else {
                payTax += (salary - i.min) * i.rate;
                break;
            }
        }
        cout << payTax << endl;
    }
}

标签:进制,--,编程,int,num,打卡,include,习题
From: https://www.cnblogs.com/sugar-refinery/p/17326674.html

相关文章

  • shell编程学习笔记之特殊变量($0、$1、$2、 $?、 $# 、$@、 $*)
    特殊变量($0、$1、$2、$?、$#、$@、$*)shell编程中有一些特殊的变量可以使用。这些变量在脚本中可以作为全局变量来使用。名称说明$0脚本名称$1-9脚本执行时的参数1到参数9$?脚本的返回值$#脚本执行时,输入的参数的个数$@输入的参数的具体内容(将输入的参数作为......
  • 记录-js基础练习题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助隔行换色(%):window.onload=function(){varaLi=document.getElementsByTagName('li');for(vari=0;i<aLi.length;i++){if(i%2==1){ aLi[i].style.background='#bfa';......
  • 打卡6
    2.1个人所得税问题 //if  else就可以#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intn;intmain(){ cin>>n; doubleans; if(n<3500)cout<<n;//小于起征点 else//达到了起征点 { if(n<=4500) ans=1500*(0.97)+(n-1500)*(0.9); elseif(n&......
  • 编程习惯
    先贴自己的缺省源#include<bits/stdc++.h>usingnamespacestd;#definerd(i,n)for(inti=0;i<n;i++)#definerp(i,n)for(inti=1;i<=n;i++)#definerep(i,a,b)for(inti=a;i<=b;i++)#defineper(i,a,b)for(inti=b;i>=a;i--)#defineststring#define......
  • 4.17打卡
    #include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;intmain(){cout<<2<<endl;inti,j,k,flag;i=3;while(i<=100){j=2;k=sqrt(i);flag=1;whil......
  • 华为云智能编程助手赋能高校,揭示行业发展新动向​
    近日,哈尔滨工业大学(深圳)举办了一场名为“华为代码大模型的方案与应用”的主题活动。活动聚焦代码大模型的起源、发展及优势,以及其在软件研发领域的广泛应用,旨在为学界与产业界提供一个交流与探讨的平台,共同推动软件研发领域的技术创新。活动期间,华为云PaaS技术创新LabDevAILab......
  • 华为云智能编程助手助力哈尔滨工业大学(深圳)培养新时代软件研发人才​
    近日,哈尔滨工业大学(深圳)举行了一场主题为“华为代码大模型的方案与应用”的活动。本次活动旨在深入探讨代码大模型的起源、发展、优势以及应用,同时结合华为云CodeArtsSnap智能编程助手案例,分析其在赋能开发者高效、可信开发方面的作用,以满足日益增长的人才需求。代码大模型起源于......
  • 华为云智能编程助手助力哈尔滨工业大学(深圳)学子,引领软件研发新趋势​
    在哈尔滨工业大学(深圳)教学楼,3月31日下午华为代码大模型的方案与应用主题活动在这里精彩上演。华为云PaaS技术创新LabDevAILab负责人马宇驰,华为云PaaS服务产品部HR刘莉,PaaS技术创新Lab产品经理张芮恺为现场150多位参会者,讲解了代码大模型的历程和在实际应用中的突出表现,结合华为代......
  • 4.17 离散化习题
    不理解啊不理解,找一堆和离散化没什么关系,中间最多sort一下的题就叫离散化练习题,打着离散化的牌子实则是一堆数据结构,意义何在?不懂啊不懂。今天只贴一道我比较喜欢的题,也是感觉唯一一道可做题。ACWing 2014.岛  传送门思路非常的简单(但其实还是看了题解....)。考虑枚举怎么......
  • 建民の每日打卡6
    一、问题描述 二、流程设计1.输入方程系数abcd2.将方程根x设为1.53.建立循环,将x赋值给x0,并按公式求出新的x。实现迭代4.当迭代满足条件后输出x值三、流程图设计 四、代码实现#include<iostream>#include<cmath>usingnamespacestd;intmain(){ floata,b,c,d,x,x0,......