分别对1-100所有数字、1-100所有偶数、1-100所有奇数计算求和

1.界面设计:

        使用渐变背景和柔和阴影营造现代感

        选项卡导航采用渐变色设计,带金色下划线指示

        卡片式布局配合平滑动画过渡

        响应式设计适配各种屏幕尺寸

2.交互功能:

        选项卡切换时带有淡入淡出动画

        计算按钮带有悬停放大效果

        分步骤展示计算过程,每步独立显示在带边框的面板中

        结果展示区采用颜色区分和高亮显示

3.计算逻辑:

        总和计算使用高斯公式

        偶数和计算采用等差数列公式

        奇数和计算采用两种方法验证

        实时公式显示和过程解释

4.视觉美化:

        精心选择的配色方案(蓝紫色渐变)

        精细的阴影和圆角处理

        专业的排版和间距控制

        动态效果(按钮悬停、选项卡切换)

5.效果截图:

        ①总和计算:

        ②偶数和:

        ③奇数和:

6.代码展示:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>数字之和可视化计算器</title>
    <style>
        /* 基础样式重置 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', Arial, sans-serif;
        }

        body {
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            min-height: 100vh;
            padding: 2rem;
        }

        /* 选项卡容器 */
        .calculator-container {
            max-width: 1000px;
            margin: 0 auto;
            background: rgba(255, 255, 255, 0.95);
            border-radius: 15px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
        }

        /* 选项卡导航 */
        .tab-nav {
            display: flex;
            background: linear-gradient(90deg, #6a11cb 0%, #2575fc 100%);
        }

        .tab-button {
            flex: 1;
            padding: 1.2rem;
            border: none;
            background: transparent;
            color: white;
            font-size: 1.1rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .tab-button.active {
            background: rgba(255, 255, 255, 0.15);
            border-bottom: 3px solid #ffd700;
        }

        /* 计算器内容区域 */
        .tab-content {
            display: none;
            padding: 2rem;
        }

        .tab-content.active {
            display: block;
            animation: fadeIn 0.5s ease;
        }

        /* 计算器样式 */
        .calculator {
            background: #fff;
            padding: 2rem;
            border-radius: 12px;
            margin-bottom: 1.5rem;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        }

        h2 {
            color: #2c3e50;
            margin-bottom: 1.5rem;
            font-size: 1.8rem;
            border-left: 4px solid #2575fc;
            padding-left: 1rem;
        }

        .calculation-steps {
            background: #f8f9fa;
            padding: 1.5rem;
            border-radius: 8px;
            margin: 1.5rem 0;
            line-height: 1.6;
        }

        button.calculate-btn {
            background: #2575fc;
            color: white;
            border: none;
            padding: 0.8rem 1.5rem;
            border-radius: 25px;
            cursor: pointer;
            transition: transform 0.2s, box-shadow 0.2s;
            font-size: 1rem;
        }

        button.calculate-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(39, 117, 252, 0.3);
        }

        .result {
            font-size: 1.4rem;
            color: #2c3e50;
            margin-top: 1rem;
            padding: 1rem;
            background: #e8f4ff;
            border-radius: 8px;
            display: inline-block;
        }

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .step {
            margin: 1rem 0;
            padding: 1rem;
            background: white;
            border-radius: 8px;
            border-left: 3px solid #2575fc;
        }

        .step h3 {
            color: #2575fc;
            margin-bottom: 0.5rem;
        }
    </style>
</head>
<body>
    <div class="calculator-container">
        <!-- 选项卡导航 -->
        <div class="tab-nav">
            <button class="tab-button active" onclick="switchTab('total')">总和计算</button>
            <button class="tab-button" onclick="switchTab('even')">偶数和</button>
            <button class="tab-button" onclick="switchTab('odd')">奇数和</button>
        </div>

        <!-- 总和计算界面 -->
        <div id="total" class="tab-content active">
            <div class="calculator">
                <h2>1-100总和计算器</h2>
                <div class="calculation-steps">
                    <div class="step">
                        <h3>步骤 1: 理解需求</h3>
                        <p>计算从1到100所有自然数的总和</p>
                    </div>
                    <div class="step">
                        <h3>步骤 2: 选择算法</h3>
                        <p>使用高斯求和公式:S = n(n+1)/2</p>
                        <p>其中n=100</p>
                    </div>
                    <button class="calculate-btn" onclick="calculateTotal()">立即计算</button>
                    <div class="result" id="totalResult"></div>
                </div>
            </div>
        </div>

        <!-- 偶数和界面 -->
        <div id="even" class="tab-content">
            <div class="calculator">
                <h2>1-100偶数和计算器</h2>
                <div class="calculation-steps">
                    <div class="step">
                        <h3>步骤 1: 确定范围</h3>
                        <p>第一个偶数:2,最后一个偶数:100</p>
                    </div>
                    <div class="step">
                        <h3>步骤 2: 计算项数</h3>
                        <p>等差数列公式:n = ((末项 - 首项)/公差) + 1</p>
                        <p>n = ((100 - 2)/2) + 1 = 50</p>
                    </div>
                    <button class="calculate-btn" onclick="calculateEven()">立即计算</button>
                    <div class="result" id="evenResult"></div>
                </div>
            </div>
        </div>

        <!-- 奇数和界面 -->
        <div id="odd" class="tab-content">
            <div class="calculator">
                <h2>1-100奇数和计算器</h2>
                <div class="calculation-steps">
                    <div class="step">
                        <h3>步骤 1: 确定范围</h3>
                        <p>第一个奇数:1,最后一个奇数:99</p>
                    </div>
                    <div class="step">
                        <h3>步骤 2: 计算方法</h3>
                        <p>方案一:总和 - 偶数和</p>
                        <p>方案二:使用等差数列公式</p>
                    </div>
                    <button class="calculate-btn" onclick="calculateOdd()">立即计算</button>
                    <div class="result" id="oddResult"></div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // 选项卡切换函数
        function switchTab(tabName) {
            document.querySelectorAll('.tab-content').forEach(content => {
                content.classList.remove('active');
            });
            document.querySelectorAll('.tab-button').forEach(button => {
                button.classList.remove('active');
            });
            document.getElementById(tabName).classList.add('active');
            event.currentTarget.classList.add('active');
        }

        // 计算总和
        function calculateTotal() {
            const n = 100;
            const result = n * (n + 1) / 2;
            document.getElementById('totalResult').innerHTML = 
                `计算结果:1-100总和 = ${result}<br>
                <small>公式:S = 100×101/2 = 5050</small>`;
        }

        // 计算偶数和
        function calculateEven() {
            const a1 = 2, an = 100;
            const n = ((an - a1)/2) + 1;
            const result = n * (a1 + an) / 2;
            document.getElementById('evenResult').innerHTML = 
                `计算结果:偶数和 = ${result}<br>
                <small>公式:50×(2+100)/2 = 2550</small>`;
        }

        // 计算奇数和
        function calculateOdd() {
            // 方法一:总和减去偶数和
            const total = 5050;
            const evenSum = 2550;
            const result = total - evenSum;
            document.getElementById('oddResult').innerHTML = 
                `计算结果:奇数和 = ${result}<br>
                <small>计算方式:5050(总和) - 2550(偶数和) = 2500</small>`;
        }
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值