public class Solution
 {
     public static void main(String[] args)
     {
         System.out.printf("%10s\t%10s\t%10s\t%10s\t%10s\n", "Taxable", "Single", "Married", "Married", "Head of");
         System.out.printf("%10s\t%10s\t%10s\t%10s\t%10s\n", "Income", " ", "Joint", "Separate", "a House");

         for(int i = 50000; i <= 60000; i += 50)
             System.out.printf("%10d\t%10f\t%10f\t%10f\t%10f\n", i, computeTax(0, 1.0 * i),
                 computeTax(1, 1.0 * i), computeTax(2, 1.0 * i), computeTax(3, 1.0 * i));
     }

     public static double computeTax(int status, double taxableIncome)
     {
         double tax = 0;

         if(status == 0)
         {
             if(taxableIncome <= 8350)
                 tax = taxableIncome * 0.1;
             else if(taxableIncome <= 33950)
                 tax = 8350 * 0.1 + (taxableIncome - 8350) * 0.15;
             else if(taxableIncome <= 82250)
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (taxableIncome - 33950) * 0.25;
             else if(taxableIncome <= 171550)
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (82250 - 33950) * 0.25 + (taxableIncome - 82250) * 0.28;
             else if(taxableIncome <= 372950)
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
                 (taxableIncome - 171550) * 0.33;
             else
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
                 (372950 - 171550) * 0.33 + (taxableIncome - 372950) * 0.35;
         }

         else if(status == 1)
         {
             if(taxableIncome <= 16700)
                 tax = taxableIncome * 0.1;
             else if(taxableIncome <= 67900)
                 tax = 16700 * 0.1 + (taxableIncome - 16700) * 0.15;
             else if(taxableIncome <= 137050)
                 tax = 16700 * 0.1 + (67900 - 16700) * 0.15 + (taxableIncome - 67900) * 0.25;
             else if(taxableIncome <= 208850)
                 tax = 16700 * 0.1 + (67900 - 16700) * 0.15 + (137050 - 67900) * 0.25 +
                 (taxableIncome - 137050) * 0.28;
             else if(taxableIncome <= 372950)
                 tax = 16700 * 0.1 + (67900 - 16700) * 0.15 + (137050 - 67900) * 0.25 +
                 (208850 - 137050) * 0.28 + (taxableIncome - 208850) * 0.33;
             else
                 tax = 16700 * 0.1 + (67900 - 16700) * 0.15 + (137050 - 67900) * 0.25 +
                 (208850 - 137050) * 0.28 + (372950 - 208850) * 0.33 + (taxableIncome - 372950) * 0.35;
         }

         else if(status == 2)
         {
             if(taxableIncome <= 8350)
                 tax = taxableIncome * 0.1;
             else if(taxableIncome <= 33950)
                 tax = 8350 * 0.1 + (taxableIncome - 8350) * 0.15;
             else if(taxableIncome <= 68525)
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (taxableIncome - 33950) * 0.25;
             else if(taxableIncome <= 104425)
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (68525 - 33950) * 0.25 + (taxableIncome - 68525) * 0.28;
             else if(taxableIncome <= 186475)
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (68525 - 33950) * 0.25 + (104425 - 68525) * 0.28 +
                 (taxableIncome - 104425) * 0.33;
             else
                 tax = 8350 * 0.1 + (33950 - 8350) * 0.15 + (68525 - 33950) * 0.25 + (104425 - 68525) * 0.28 +
                 (186475 - 104425) * 0.33 + (taxableIncome - 186475) * 0.35;
         }

         else if(status == 3)
         {
             if(taxableIncome <= 11950)
                 tax = taxableIncome * 0.1;
             else if(taxableIncome <= 45500)
                 tax = 11950 * 0.1 + (taxableIncome - 11950) * 0.15;
             else if(taxableIncome <= 117450)
                 tax = 11950 * 0.1 + (45500 - 11950) * 0.15 + (taxableIncome - 45500) * 0.25;
             else if(taxableIncome <= 190200)
                 tax = 11950 * 0.1 + (45500 - 11950) * 0.15 + (117450 - 45500) * 0.25 +
                 (taxableIncome - 117450) * 0.28;
             else if(taxableIncome <= 372950)
                 tax = 11950 * 0.1 + (45500 - 11950) * 0.15 + (117450 - 45500) * 0.25 +
                 (190200 - 117450) * 0.28 + (taxableIncome - 190200) * 0.33;
             else
                 tax = 11950 * 0.1 + (45500 - 11950) * 0.15 + (117450 - 45500) * 0.25 +
                 (190200 - 117450) * 0.28 + (372950 - 190200) * 0.33 + (taxableIncome - 372950) * 0.35;
         }

         return tax;
     }
 }

HW5.15的更多相关文章

  1. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  2. 15个关于Chrome的开发必备小技巧[译]

    谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...

  3. 15个C++项目列表

    实验楼上有很多C++的实战项目,从简单到进阶,学习每个项目都可以掌握相应的知识点. 如果你还是C++新手的话,那么这个C++的项目列表你可以拿去练手实战开发,毕竟学编程动手实践是少不了的! 如果你不知 ...

  4. Hacker Rank: Two Strings - thinking in C# 15+ ways

    March 18, 2016 Problem statement: https://www.hackerrank.com/challenges/two-strings/submissions/code ...

  5. 在 Ubuntu 15.04 中使用 ubuntu-make、Eclipse 4.4、Java 8 以及 WTP

    Ubuntu 今天发布新版本了 其实昨天(2015-04-23)我就看到了 Ubuntu 发布新版本的新闻,下班后回家的第一件事就是访问 Ubuntu 的官网,很可惜,没有提供下载.今天(2015-0 ...

  6. 企业IT管理员IE11升级指南【15】—— 代理自动配置脚本

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  7. (转)C++语言的15个晦涩特性

    原文链接: Evan Wallace   翻译: 伯乐在线- 敏敏 译文链接: http://blog.jobbole.com/54140/ 这个列表收集了 C++ 语言的一些晦涩(Obscure)特 ...

  8. CSharpGL(15)用GLSL渲染2种类型的文字

    CSharpGL(15)用GLSL渲染2种类型的文字 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合 ...

  9. ABP(现代ASP.NET样板开发框架)系列之15、ABP应用层——应用服务(Application services)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之15.ABP应用层——应用服务(Application services) ABP是“ASP.NET Boiler ...

随机推荐

  1. 利用jquery的imgAreaSelect插件实现图片裁剪示例

    http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html 将用户上传的图片进行裁剪再保存是现在web2.0应用中常常处理的工作,现在借 ...

  2. 关于github在mac 10.10上无法提交代码的解决办法---备用

    接下来是正文:本文主要说明在mac 10.10版本下github无法提交代码的问题 首先如果你是一个用终端提交代码的,你可以不用看这篇文章了,这篇文章主要是用于解决github客户端提交代码的问题,此 ...

  3. Highcharts资料

    对应的API:   http://api.hcharts.cn/#chart.events 对应的中文网实例:http://www.hcharts.cn/demo/highcharts/dynamic ...

  4. 1013: [JSOI2008]球形空间产生器sphere

    很直观的一个gauss题: 用的是以前用过的一个模板: #include<cstdio> #include<algorithm> #include<cmath> # ...

  5. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-006-给bean运行时注入值(Environment,Property文件)

    一. 直观的给bean注入值如下: @Bean public CompactDisc sgtPeppers() { return new BlankDisc( "Sgt. Pepper's ...

  6. datetime 和 smalldatetime

    用于表示某天的日期和时间的数据类型. datetime 和 smalldatetime 表示某天的日期和时间. 数据类型 范围 精确度 datetime 1753 年 1 月 1 日到 9999 年 ...

  7. 【原创】MIPS中断系统的板级验证及实例测试

    “五一”假期前后这约五天时间,终于将MIPS中断系统进行了板级验证及实例测试.因为老师给的交叉编译工具不会用,所以测试代码完全用MIPS汇编编写.使用MARS而没有用QtSpim,其实我觉得SPIM这 ...

  8. 【 随笔 】 JavaScript 图形库的流行度调查

    2014年可以说是 JavaScript 最风光的一年,成为上升最快的语言,在 Github 上最受关注的前10个仓库中,有7个是基于 JavaScript 开发的,数不胜数的函数库可适应于各种需求. ...

  9. 使用 HTML5、CSS3 和 MathML 在 EPUB 3 中制作版式丰富的出版物

    探索用于高级排版和印刷的新一代开放电子书标准 EPUB 3.0 是最新的行业标准 XML 电子书格式,它采用了 HTML5 和 CSS3,因而融入了现代 Web 技术.它重点关注 XML 驱动的工具包 ...

  10. windows API中的各种字符串的本质

    windows 库中的各种string, char, wchar, TCHAR, lpstr, lpwstr, lpcwstr  ,   cstring  ,    BSTR,   _bstr_t 等 ...